さて、保存したいのは「構成」要素であると仮定すると、実際には時間をかけてリソース環境プロバイダーを使用して実装します。これは、より柔軟で明らかに移植性の高いアプローチであるためです。
JNDI を使用してストリングをバインドするには、「ストリング名前空間バインディング」を使用します: http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ ae/unam_rstring_namespace.html
編集済み (ResEnv に関する詳細を追加するため):
ファクトリー・クラスは、IBM ではなく、ユーザーが作成するクラスです。1つの例を次に示します。
public class MyFactory implements javax.naming.ObjectFactory {
@Override
public Object getObjectInstance(Object object, Name name, Context context, Hashtable env) throws NamingException {
MyConfig cfg = new MyConfig();
for (Enumeration e = ((Reference) object).getAll(); e.hasMoreElements();) {
RefAddr addr = (RefAddr) e.nextElement();
String key = addr.getType();
Object value = addr.getContent();
cfg.put(key, value);
}
}
}
(これはとメソッドMyConfig
を持つ単純なクラスであると想定しています)get(String)
put(String, String)
次に、WebSphere で新しいリソース環境プロバイダーを作成します。Referenceable の場合、MyFactory の完全修飾クラス名を「ファクトリー クラス」として、MyConfig の完全修飾クラス名を「クラス」として入力します。
次に、リソース環境エントリを追加します。JNDI 名を付けますmyresources/test
。ドロップダウン ボックスから [参照可能] を選択します。
[カスタム プロパティ] をクリックし、そこにキーと値のペアを追加します。
WebSphere 構成を保存し、サーバーを再始動して、再試行してください。に対して JNDI ルックアップを発行すると、そこに配置したすべてのカスタム プロパティをmyresources/test
含むインスタンスが取得されます。MyConfig
それがどうなったか教えてください。幸運を!