通常、Application Server で実行中のアプリケーションは、外部 JNDI リポジトリに格納されているリソースにアクセスする必要があります。たとえば、Java スキーマのように一般的な Java オブジェクトを LDAP サーバーに格納できます。外部 JNDI リソース要素を使用すると、このような外部リソースリポジトリを設定できます。外部 JNDI ファクトリは、javax.naming.spi.InitialContextFactory インタフェースを実装する必要があります。
外部 JNDI リソースの使用例を示します。
<resources> <!-- external-jndi-resource element specifies how to access J2EE resources -- stored in an external JNDI repository. The following 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 リポジトリに格納されて -- いる Java EE リソースへのアクセス方法を指定します。次の例は、 -- LDAP に格納されている Java オブジェクトへのアクセス方法を示します。 -- factory-class 要素は、リソースファクトリへのアクセスに使用される -- JNDI InitialContext ファクトリを指定します。property 要素は -- 外部 JNDI コンテキストに適用可能な環境に対応します。 -- jndi-lookup-name は、指定の (この例では Java) オブジェクトを検出して -- フェッチするための JNDI 名を参照します。 --> <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>