Enterprise Server 上で動作しているアプリケーションでは、外部 JNDI リポジトリに保存されているリソースへのアクセスが必要となる場合があります。たとえば、汎用の Java オブジェクトを Java スキーマに従って LDAP サーバーに格納する場合があります。外部 JNDI リソース要素を使用すると、このような外部リソースリポジトリを設定できます。
ここでは、次のテーマを取り上げます。
外部 JNDI リソースを登録するには、リモートモードで create-jndi-resource サブコマンドを使用します。
外部 JNDI ファクトリは、javax.naming.spi.InitialContextFactory インタフェースを実装する必要があります。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
create-jndi-resource(1) サブコマンドを使用して、外部 JNDI リソースを登録します。
サブコマンドのプロパティーについては、サブコマンドのマニュアルページを参照してください。
Enterprise Serverを再起動します。
「ドメインの再起動」を参照してください。
この例では、sample_jndi_resource が登録されています。
asadmin> create-jndi-resource --jndilookupname sample_jndi --restype queue --factoryclass sampleClass --description "this is a sample jndi resource" sample_jndi_resource Command create-jndi-resource executed successfully |
コマンド行に asadmin help create-jndi-resource と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
既存の JNDI リソースをすべて表示するには、リモートモードで list-jndi-resources サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jndi-resources(1) サブコマンドを使用して、既存の JNDI リソースを一覧表示します。
この例では、JNDI リソースを一覧表示します。
asadmin> list-jndi-resources jndi_resource1 jndi_resource2 jndi_resource3 Command list-jndi-resources executed successfully |
コマンド行に asadmin help list-jndi-resources と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
JNDI ツリーでエントリを参照および一覧表示するには、リモートモードで list-jndi-entries サブコマンドを使用します。すべてのエントリを表示するか、JNDI コンテキストまたはサブコンテキストを指定して特定のエントリだけを一覧表示できます。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-jndi-entries(1) サブコマンドを使用して、構成の JNDI エントリを一覧表示します。
この例では、ネームサービスの JNDI エントリをすべて表示します。
asadmin> list-jndi-entries jndi_entry03 jndi_entry72 jndi_entry76 Command list-jndi-resources executed successfully |
コマンド行に asadmin help list-jndi-entries と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
list-jndi-resources(1) サブコマンドを使用して、既存の JNDI リソースを一覧表示します。
set(1) サブコマンドを使用して、外部 JNDI リソースを変更します。
この例では、外部リソースを変更します。
asadmin> set server.resources.external-jndi-resource.my-jndi-resource. jndi-lookup-name=bar server.resources.external-jndi-resource.my-jndi-resource.jndi-lookup-name=bar |
JNDI リソースを削除するには、リモートモードで delete-jndi-resource サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
delete-jndi-resource(1) サブコマンドを使用して、外部 JNDI エントリを削除します。
この例では、外部 JNDI リソースを削除します。
asadmin> delete-jndi-resource jndi_resource2 Command delete-jndi-resource executed successfully. |
コマンド行に asadmin help delete-jndi-resource と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
<resources> <!-- external-jndi-resource element specifies how to access J2EE resources -- stored in an external JNDI repository. This example -- illustrates how to access a java object stored in LDAP. -- factory-class element specifies the JNDI InitialContext factory that -- needs to be used to access the resource factory. property element -- corresponds to the environment applicable to the external JNDI context -- and jndi-lookup-name refers to the JNDI name to lookup to fetch the -- designated (in this case the java) object. --> <external-jndi-resource jndi-name="test/myBean" jndi-lookup-name="cn=myBean" res-type="test.myBean" factory-class="com.sun.jndi.ldap.LdapCtxFactory"> <property name="PROVIDER-URL" value="ldap://ldapserver:389/o=myObjects" /> <property name="SECURITY_AUTHENTICATION" value="simple" /> <property name="SECURITY_PRINCIPAL", value="cn=joeSmith, o=Engineering" /> <property name="SECURITY_CREDENTIALS" value="changeit" /> </external-jndi-resource> </resources>