1

次の情報を使用して、IBM WebSphere 7.0 に名前空間バインディングを追加しました。

  • バインディング タイプ= 文字列
  • 結合識別子= テスト
  • ルックアップ名プレフィックス 'cell/nodes/DummyNode01/servers/server1/' に関連する名前空間の名前: = url1
  • 文字列値= <何らかの文字列>

以下のコードを使用して、Web アプリケーションのコードで String 値にアクセスできました。

Context initial_ctx;
initial_ctx = new InitialContext();
String value = (String) initial_ctx.lookup("url1");

ここで、コードを介してアクセスする代わりに、String 値を XML に入れたいと考えています。XML で WebSphere の名前空間バインディングにアクセスするにはどうすればよいですか? context-paramタグ内で宣言できますか?

ありがとう!

4

1 に答える 1

3

いくつかのメモ。

まず、NSB の文字列名 (JNDI 文字列) は、設定したスコープに応じて WebSphere によって異なります。投稿で特定した「サーバー」スコープにより、この文字列値をフレンドリ名 (例では「url1」) でそのまま参照できます。ただし、クラスター化された環境では注意してください。すべてのクラスター メンバー appserver で同じ値が必要になる可能性があるすべてのサーバー インスタンスで、この NSB を定義する必要があります。この場合、NSB をセル レベルで定義し、コード (または、Spring xml) で jndi 名 "cell/persistent/url1" を使用します。

WebSphere の NSB はネーミング サービス (JNDI) の単なる文字列であるため、Spring JndiFactoryBean を使用できます。

<bean id="myUrl1NameSpaceBinding" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="url1"/> <!-- cell/persistent/url1 in a cluster-wide shared namespace binding -->
    <property name="cache" value="true"/>
    <property name="resourceRef" value="false"/>
    <property name="lookupOnStartup" value="false"/>
    <property name="expectedType" value="java.lang.String"/>
</bean>

省略形のフレーバーもあります。

<jee:jndi-lookup />

参照: Spring XML ドキュメント

お役に立てれば、

スコット

于 2012-12-15T20:03:06.440 に答える