Liberty Profile で既存の WebSphere アプリケーションを実行しようとしていますが、問題が発生しました。アプリケーションには、サーバーで構成されたリソース環境エントリーがあり、これを Liberty Profile リソースに変換する必要があります。データソース (dataSource) または定数 (jndiEntry) ではない、server.xml で JNDI リソースを構成するにはどうすればよいですか?
どうもありがとう
Liberty Profile で既存の WebSphere アプリケーションを実行しようとしていますが、問題が発生しました。アプリケーションには、サーバーで構成されたリソース環境エントリーがあり、これを Liberty Profile リソースに変換する必要があります。データソース (dataSource) または定数 (jndiEntry) ではない、server.xml で JNDI リソースを構成するにはどうすればよいですか?
どうもありがとう
これは、server.xml の要素を使用して構成できます。これはインフォセンターに記載されています。基本的に、これを使用して server.xml で jndi 機能を有効にします。
<featureManager>
<feature>jndi-1.0</feature>
</featureManager>
次に、JNDI エントリを構成できます。これを使用して単純な型しか実行できないため、複雑なオブジェクトはありません。エントリを構成するには、次のようにします。
<jndiEntry jndiName="myProp/philosopher" value="plato" />
Liberty プロファイルは型推論を行うため、次のように表現した場合:
<jndiEntry jndiName="myProp/philosopher" value="1234" />
JNDI から Number を取得します。これを表現すると:
<jndiEntry jndiName="myProp/philosopher" value="1234.3D" />
あなたはダブルを取得します。
数値を文字列リテラルとして使用する場合は、引用符を使用して表現します。
<jndiEntry jndiName="myProp/philosopher" value='"1234.3D"' />
アプリケーションからこれを取得するには、次のようなグローバル ルックアップを実行できます。
Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("myProp/philosopher");
String philosopher = (String) jndiConstant;
これを ibm-web-bnd.xml ファイルのリソース環境エントリーにマップすることもできます。
<env-entry name="philosopher" binding-name="myProp/philosopher" />
次に、このコードを使用して検索します。
Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("java:comp/env/philosopher");
String philosopher = (String) jndiConstant;
現在、これは Liberty Profile では不可能です。この質問は、IBM WasDev フォーラム ( https://developer.ibm.com/answers/questions/6221/resource-environment-entries-in-liberty-profile/?community=wasdev ) で回答されています。将来のリリースでサポートするために作成されました。