使用java api从消息代理栏文件中检索属性值

时间:2011-10-04 12:55:26

标签: java mq messagebroker

我正在尝试从消息代理创建的条形文件中读取属性值。

我想通过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 :(得分:0)

问题是我误解了部署描述符的工作原理。我认为当java API引用被覆盖的属性时,它意味着在我的java代码中过度使用的属性。但它实际上意味着条形文件中具有值的所有属性。

据说获得这些价值并不是一个前沿。您必须获取所有标识符,然后将它们传递给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();

答案 1 :(得分:0)

由于某些原因,设置不会写入文件,如果它们没有被覆盖或未被更改。(原因是没有必要保持属性的默认值:))所以获取属性的方法是知道他们的默认值。但如果您能够连接到代理以使用方法读取属性,我建议您使用com.ibm.mq.jar

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

来自已部署的.bar。