2016-11-17 8 views
0

ich bin neu zu ldap und auch zu jndi Ressourcen und sogar zu jboss (lol) und ich versuche herauszufinden, wie dies funktioniert. Ich muss eine Verbindung mit einem LDAP-Server herstellen, dessen Konfiguration in der Jboss standalone.xml-Datei definiert ist, und muss über jndi innerhalb von Java darauf zugreifen.LDAP jndi Verbindung (java + jboss eap 6)

ich in standalone.xml und Außen-Kontext definiert haben mit LDAP zu verbinden:

<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> 

dann in Java habe ich diesen Code:

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

Aber wenn die Lookup-i ausführt den folgenden Fehler bekommen:

Ich habe viele verschiedene Beispiele ausprobiert, aber ich kann nichts arbeiten ...

Vielen Dank im Voraus.

Antwort

0

Endlich habe ich es so gelöst, indem ich InitialDirContext als Klasse des externen Kontextes verwende.

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> 

in Java:

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

Und ich bekomme den Kontext richtig, ich hoffe das jemand anders helfen kann.

Verwandte Themen