получить значения свойств из файла панели брокера сообщений с помощью API Java - PullRequest
0 голосов
/ 04 октября 2011

Я пытаюсь прочитать значения свойств из файла бара, созданного брокером сообщений.

Я хочу сделать это через Java.API здесь: http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fbe43410_.htm

Однако я могу только выяснить, как получить имена свойств, а не их значения, используя дескриптор развертывания.Я могу видеть, как переопределить значение, которое имеет свойство, но еще раз, а не как извлечь значение.Другими словами я вижу только то, как писать в свойство, а не читать из него.Я хочу сделать оба!Назовите меня жадным;)

Если я использую утилиту на основе командной строки: http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Faf03900_.htm Я могу получить значения свойств без проблем.

Но я хочу получить их через Java, если это возможно.

Заранее благодарим за любую помощь в этом!

Ответы [ 2 ]

0 голосов
/ 30 июня 2014

По какой-то причине настройки не записываются в файл, если они не переопределены или не изменены (причина в том, что нет необходимости сохранять значение свойства по умолчанию :)), поэтому способ получить свойства - узнать их значения по умолчанию. Но я бы порекомендовал вам использовать библиотеку com.ibm.mq.jar, если вы можете подключиться к брокеру для чтения свойств, используя метод

java.util.Properties MessageFlowProxy.Node.getProperties()

из уже развернутого .bar.

0 голосов
/ 04 октября 2011

Проблема была в том, что я неправильно понял, как работает дескриптор развертывания. Я думал, что когда java API ссылается на переопределенные свойства, это означает, что они были переопределены в моем java-коде. Но на самом деле это означало все свойства, которые имели значение в файле bar.

То, что сказано, получение ценностей не является прямым шагом вперед. Вы должны получить все идентификаторы и затем передать их getOverride ();

BarFile b = BarFile.loadBarFile("C:\\BarParamTest\\myBar.bar");
DeploymentDescriptor d =  b.getDeploymentDescriptor();

Enumeration<String> properties = d.getPropertyIdentifiers();

while(properties.hasMoreElements())
{
    String p = properties.nextElement();
    System.out.println(p + " = " + d.getOverride(p));
}

или используйте следующее, чтобы перечислить только свойства, имеющие значения

Enumeration<String> properties = d.getOverriddenPropertyIdentifiers();
...