2016-11-17 3 views
0

저는 ldap과 jndi 리소스와 jboss (lol)에 익숙합니다.이 작업을 수행하는 방법을 알아 내려고하고 있습니다. 구성이 Jboss standalone.xml 파일에 정의되어 있고 java 내의 jndi를 통해 액세스해야하는 LDAP 서버에 연결해야합니다.LDAP jndi connection (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> 

난했습니다 코드 :

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> 

자바 :

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

그리고 나는이 다른 사람을 도울 수 있기를 바랍니다, 제대로 컨텍스트를 얻을.

관련 문제