Probleme mit JNDI (LDAP)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme mit JNDI (LDAP)

    Hallo zusammen
    Ich lerne seit einigen Tage LDAP (JNDI) ,da ich diese Technik in mein Projekt verwenden muss.Ich habe einige Beispiel-Programe aus Internet heruntergeladen, aber immer ich sie kompielere bekomme ich Fehlermeldungen,obwohl ich alle benötigte Klassenbibliotheken angepasst habe,ich bitte um Hilfe ,um zu wissen wie ich eine JNDI-Program kompilieren kann.
    Ich verwende Window XP,Eclipse als Entwicklungsumgebung ,JAVA SDK 1.5.
    Hier ist ein Program das,ich geschrieben habe.

    Quellcode

    1. import java.util.*;
    2. import javax.naming.*;
    3. import javax.naming.directory.*;
    4. /*Dieses Listing sucht nach allen Einträgen,die ein Locality-Attribut mit dem Wert
    5. * Hamburg oder Berlin haben und deren Organisationseinheit mit der Zeichenkette co
    6. * beginnt.*/
    7. public class FilterSearch {
    8. public static void main(String[] args){
    9. try{
    10. //Konfiguration der JNDI-Umgebung
    11. Hashtable env = new Hashtable();
    12. //Setzen des Service-Providers(LDAP)
    13. env.put(DirContext.INITIAL_CONTEXT_FACTORY,
    14. "com.sun.jndi.ldap.LdapCtxFactory");
    15. //Setzen des Providers-URL
    16. env.put(DirContext.PROVIDER_URL,
    17. "ldap://localhost:389/o=JNDITutorial");
    18. //Erzeugen des InitialContext
    19. DirContext ctx = new InitialDirContext(env);
    20. //Erzeugen des Filters
    21. String filter = "(&(|(l=Hamburg)(l=Berlin))(ou=Co*))";
    22. //Erzeugen der Suchbedingungen
    23. SearchControls ctls = new SearchControls();
    24. //Suche nach den Objekten
    25. NamingEnumeration list = ctx.search(".",filter,ctls);
    26. while(list.hasMore()){
    27. SearchResult result = (SearchResult)list.next();
    28. System.out.println(result.getName() + " : " + result.getObject());
    29. }
    30. //schliessen der Verbindung
    31. ctx.close();
    32. }catch(NamingException nex){
    33. nex.printStackTrace();
    34. }
    35. return;
    36. }
    37. }
    Alles anzeigen


    Beim Kompielen bekome ich immer folgende Fehlermeldungen :

    localhost:389 [Root exception is java.net.ConnectException: Connection refused: connect]
    at com.sun.jndi.ldap.Connection.<init>(Unknown Source)
    at com.sun.jndi.ldap.LdapClient.<init>(Unknown Source)
    at com.sun.jndi.ldap.LdapClient.getInstance(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.<init>(Unknown Source)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)
    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
    at javax.naming.InitialContext.init(Unknown Source)
    at javax.naming.InitialContext.<init>(Unknown Source)
    at javax.naming.directory.InitialDirContext.<init>(Unknown Source)
    at ldap.FilterSearch.main(FilterSearch.java:27)
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.sun.jndi.ldap.Connection.createSocket(Unknown Source)
    ... 15 more


    Im Voraus vielen Dank für deine Hilfe.

    Lecorniaud.
  • vorweg: ich hab noch nie JNDI genutzt
    aber bist du sicher, dass dein LDAPserver läuft?

    java.net.ConnectException deutet daraufhin, dass die Anwendung nicht läuft.
    erscheint die Meldung denn sofort, oder nach einer gewissen zeit?

    Erreichst du den Server mit einem Ping bzw. im Browser?
    Falls du zufällig nen Portscanner an Bord hast, würd ich den mal laufen lassen
  • LDAP -Server

    aber bist du sicher, dass dein LDAPserver läuft?
    Das ist genau mein Problem,ich weiss nicht wie man einen LDAP-Server installiert.

    java.net.ConnectException deutet daraufhin, dass die Anwendung nicht läuft. erscheint die Meldung denn sofort, oder nach einer gewissen zeit?
    Die Meldung erscheint sofort.

    Erreichst du den Server mit einem Ping bzw. im Browser? Ich kann leider nicht,ich würde gern wissen wie....
    Danke...
  • aber du willst doch eine LDAP Clientanwendung programmieren, oder?

    hatte mal einen ldap server für linux aufgesetzt.
    soweit ich weiß gibts OpenLDAP auch für Windows
    http://de.wikipedia.org/wiki/OpenLDAP

    du musst halt wissen, was du brauchst:
    OpenLDAP unterstützt im Gegensatz zu anderen Produkten wie dem Fedora Directory Server oder Microsofts Active Directory Service nur single mastering. Das bedeutet, dass bei OpenLDAP nur auf einem zentralen Server die Daten verändert werden können, und alle anderen Directory-Server diese Daten replizieren.


    PS: LDAP Clients findest du auch auf koders.com
    z.B. http://koders.com/java/fid43178E0D32E8982438C0213C0E1EBB4B7A34EA1E.aspx?s=ldap