0

メッセージ ブローカーによって作成された bar ファイルからプロパティ値を読み取ろうとしています。

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 に答える