0

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

我想通过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 获得它们。

提前感谢您对此的任何帮助!

4

2 回答 2

0

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

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

来自已部署的 .bar。

于 2014-06-30T10:14:33.180 回答
0

问题是我误解了部署描述符是如何工作的。我认为当 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();
于 2011-10-04T14:43:14.987 回答