2016-11-17 6 views
0

私はldapとjndiリソース、さらにはjboss(lol)にも新しく、これを動作させる方法を理解しようとしています。 Jbossのstandalone.xmlファイルで定義されているconfigというLDAPサーバーに接続する必要があり、java内のjndiからアクセスする必要があります。LDAP jndi接続(java + jboss eap 6)

私はLDAPに接続するためにstandalone.xmlと外部コンテキストで定義されました:

<subsystem xmlns="urn:jboss:domain:naming:1.4"> 
     <bindings> 
      <external-context name="java:global/ldap" module="org.jboss.as.naming" class="javax.naming.ldap.InitialLdapContext" cache="true"> 
       <environment> 
       <property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> 
       <property name="java.naming.provider.url" value="ldap://host:port"/> 
       <property name="java.naming.security.authentication" value="simple"/> 
       <property name="java.naming.security.principal" value="user"/> 
       <property name="java.naming.security.credentials" value="password"/> 
       </environment> 
      </external-context> 
     </bindings> 
     <remote-naming/> 
</subsystem> 

次にJavaで私はこのコードをしました:

InitialLdapContext ctx = new InitialLdapContext(); 
LdapContext ldapContext = null; 
ldapContext = (LdapContext) ctx.lookup("java:global/ldap")); 

しかし、ルックアップは、私を実行次のエラーが表示されます:

java.lang.NoSuchMethodException: javax.naming.ldap.InitialLdapContext.<init>(java.util.Hashtable) 

私は多くの異なる例を試しましたが、何もできません...

ありがとうございます。

答えて

0

最後に、InitialDirContextを外部コンテキストのクラスとして使用して、このように解決しました。

standalone.xml

<subsystem xmlns="urn:jboss:domain:naming:1.4"> 
     <bindings> 
      <external-context name="java:global/ldap" module="org.jboss.as.naming" class="javax.naming.directory.InitialDirContext" cache="true"> 
       <environment> 
       <property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> 
       <property name="java.naming.provider.url" value="ldap://host:port"/> 
       <property name="java.naming.security.authentication" value="simple"/> 
       <property name="java.naming.security.principal" value="user"/> 
       <property name="java.naming.security.credentials" value="password"/> 
       </environment> 
      </external-context> 
     </bindings> 
     <remote-naming/> 
</subsystem> 

Javaで:

InitialDirContext ldapContext = new InitialDirContext(); 
ldapContext = (InitialDirContext) new InitialContext().lookup("java:global/ldap"); 

そして私は、私は、これは他の誰かを助けることを願って、正しくコンテキストを取得します。

関連する問題