2013-11-15 10 views
8

Ich verwende Apache Directory Studio 2.0.0 und ApacheDS 2.0. Nach dem Erstellen einer neuen Partition o=SevenSeans,dc=com, wie in http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html Ich versuche, einen neuen Eintrag zu erstellen. Ich wähle objectClass organizationalPerson und geben Sie übergeordnete o=SevenSeans,dc=com, RDN uid=Name. Dann klicke ich auf Weiter und gebe den Wert cn und sn Attribute ein. Klicken Sie nun i-Finish und haben Ausnahme:apacheDS kann keinen neuen Eintrag erstellen

Error while creating entry 
- [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUES 
    javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST 
Message ID : 19 
    Add Request : 
Entry 
    dn[n]: uid=Name,o=SevenSeans,dc=com 
    objectclass: domain 
    objectclass: top 
    objectclass: extensibleObject 
    objectclass: organizationalPerson 
    objectclass: person 
    uid: Name 
    dc: SevenSeans 
    sn: sf 
    cn: s 
: ERR_61 Entry uid=Name,o=SevenSeans,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS (0.9.2342.19200300.100.4.13 
NAME 'domain' 
SUP 'top' 
STRUCTURAL 
MUST 'dc' 
MAY ('associatedName' $ 'o' $ 'description' $ 'businessCategory' $ 'seeAlso' $ 'searchGuide' $ 'userPassword' $ 'l' $ 'st' $ 'street' $ 'physicalDeliveryOfficeName' $ 'postalAddress' $ 'postalCode' $ 'postOfficeBox' $ 'facsimileTelephoneNumber' $ 'internationaliSDNNumber' $ 'telephoneNumber' $ 'teletexTerminalIdentifier' $ 'telexNumber' $ 'preferredDeliveryMethod' $ 'destinationIndicator' $ 'registeredAddress' $ 'x121Address') 
) 
, OBJECT_CLASS (2.5.6.7 
NAME 'organizationalPerson' 
DESC RFC2256: an organizational person 
SUP 'person' 
STRUCTURAL 
MAY ('title' $ 'x121Address' $ 'registeredAddress' $ 'destinationIndicator' $ 'preferredDeliveryMethod' $ 'telexNumber' $ 'teletexTerminalIdentifier' $ 'telephoneNumber' $ 'internationaliSDNNumber' $ 'facsimileTelephoneNumber' $ 'street' $ 'postOfficeBox' $ 'postalCode' $ 'postalAddress' $ 'physicalDeliveryOfficeName' $ 'ou' $ 'st' $ 'l') 
) 
]]; remaining name 'uid=Name,o=SevenSeans,dc=com' 
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(Unknown Source) 
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Unknown Source) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$4.run(JNDIConnectionWrapper.java:669) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1305) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1237) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.createEntry(JNDIConnectionWrapper.java:722) 
    at org.apache.directory.studio.ldapbrowser.core.jobs.CreateEntryRunnable.createEntry(CreateEntryRunnable.java:224) 
    at org.apache.directory.studio.ldapbrowser.core.jobs.CreateEntryRunnable.run(CreateEntryRunnable.java:124) 
    at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:112) 
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) 

    [LDAP: error code 65 - OBJECT_CLASS_VIOLATION: failed for MessageType : ADD_REQUEST 
Message ID : 19 
    Add Request : 
Entry 
    dn[n]: uid=Name,o=SevenSeans,dc=com 
    objectclass: domain 
    objectclass: top 
    objectclass: extensibleObject 
    objectclass: organizationalPerson 
    objectclass: person 
    uid: Name 
    dc: SevenSeans 
    sn: sf 
    cn: s 
: ERR_61 Entry uid=Name,o=SevenSeans,dc=com contains more than one STRUCTURAL ObjectClass: [OBJECT_CLASS (0.9.2342.19200300.100.4.13 
NAME 'domain' 
SUP 'top' 
STRUCTURAL 
MUST 'dc' 
MAY ('associatedName' $ 'o' $ 'description' $ 'businessCategory' $ 'seeAlso' $ 'searchGuide' $ 'userPassword' $ 'l' $ 'st' $ 'street' $ 'physicalDeliveryOfficeName' $ 'postalAddress' $ 'postalCode' $ 'postOfficeBox' $ 'facsimileTelephoneNumber' $ 'internationaliSDNNumber' $ 'telephoneNumber' $ 'teletexTerminalIdentifier' $ 'telexNumber' $ 'preferredDeliveryMethod' $ 'destinationIndicator' $ 'registeredAddress' $ 'x121Address') 
) 
, OBJECT_CLASS (2.5.6.7 
NAME 'organizationalPerson' 
DESC RFC2256: an organizational person 
SUP 'person' 
STRUCTURAL 
MAY ('title' $ 'x121Address' $ 'registeredAddress' $ 'destinationIndicator' $ 'preferredDeliveryMethod' $ 'telexNumber' $ 'teletexTerminalIdentifier' $ 'telephoneNumber' $ 'internationaliSDNNumber' $ 'facsimileTelephoneNumber' $ 'street' $ 'postOfficeBox' $ 'postalCode' $ 'postalAddress' $ 'physicalDeliveryOfficeName' $ 'ou' $ 'st' $ 'l') 
) 
]] 

Wenn ich import->LDIF verwenden und captain-hook-hierarchy.ldif

Error while importing LDIF 
- [LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUES 
javax.naming.NameNotFoundException: [LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUEST 
Message ID : 20 
    Add Request : 
Entry 
    dn[n]: ou=people,o=sevenSeas 
    objectclass: organizationalUnit 
    objectclass: top 
    ou: people 
: ERR_268 Cannot find a partition for ou=people,o=sevenSeas]; remaining name 'ou=people,o=sevenSeas' 
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 
    at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(Unknown Source) 
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Unknown Source) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$4.run(JNDIConnectionWrapper.java:669) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1305) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1237) 
    at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.createEntry(JNDIConnectionWrapper.java:722) 
    at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdifRecord(ImportLdifRunnable.java:464) 
    at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdif(ImportLdifRunnable.java:272) 
    at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.run(ImportLdifRunnable.java:218) 
    at org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

[LDAP: error code 32 - NO_SUCH_OBJECT: failed for MessageType : ADD_REQUEST 
Message ID : 20 
    Add Request : 
Entry 
    dn[n]: ou=people,o=sevenSeas 
    objectclass: organizationalUnit 
    objectclass: top 
    ou: people 
: ERR_268 Cannot find a partition for ou=people,o=sevenSeas] 

wählen Wie kann ich dieses Problem beheben? Es ist in Ordnung, einen neuen Eintrag zu erstellen, wenn ich top Klasse auswähle.

+0

wow, ich durch die gleiche Tutorial gerade arbeite. Haben Sie die .ldif-Datei mit der Liste der Segler importiert? – Sionnach733

+0

@ Sionnach733 UPD –

+0

ok, ich hatte das gleiche Problem, ich werde Antwort posten – Sionnach733

Antwort

13

Es gibt eine Reihe von Problemen mit diesem Tutorial (Rechtschreibung, Benutzeroberfläche sieht anders aus, etc), aber ich habe es geschafft, die Beispieldaten zu importieren und einen neuen Eintrag hinzuzufügen.

Ihr Fehler tritt aus diesem Grund auf: com contains more than one STRUCTURAL ObjectClass. Dies tritt auf, weil domain und organizationalPerson beide strukturell sind und nicht zusammen funktionieren, versuchen Sie, domain zu entfernen. Weitere Informationen finden Sie unter LDAP objectClasses

Zum Importieren der captain-hook-hierarchy.ldif müssen Sie zunächst eine neue Partition erstellen. Das Lernprogramm stimmt nicht mit den Namenskonventionen überein und ist die Ursache für Ihren Fehler. Erstellen eine neue Partition:

ID:SevenSeas 
Suffix: o=sevenSeas 

Der Fehler ist, weil die ,dc=com aus dem Tutorial. Wenn Sie die .ldif-Datei öffnen, wird kein Verweis auf ,dc=com angezeigt.

Deaktivieren Sie als nächstes das Kontrollkästchen . Es erstellt nicht die entsprechenden Attribute für das Beispiel. Fügen Sie dann diese Attribute hinzu:

o: sevenSeas 
objectClass: top 
objectClass: organization 
description: The context entry for suffix o=sevenSeas 

Speichern Sie die config.ldif-Datei, und starten Sie den Server neu. Dann importieren Sie captain-hook-hierarchy.ldif. Das Verzeichnis sollte ausgefüllt werden und neue Einträge hinzufügen, klicken Sie einfach mit der rechten Maustaste auf eine Gruppe und Add new entry.

Hoffe, das hilft!

+1

FANTASTISCH, Sie sind Zauberer !!! Es ist wirklich Arbeit, vielen Dank. Aber ich habe 1 Frage: Es gibt nur "Domain" und "organisationalPerson" kann nicht zusammen arbeiten? "OrganizationalPerson" und "Person" sind beide strukturell und arbeiten zusammen. –

+0

Ich bin nicht 100% auf welche strukturellen Objektklassen zusammenarbeiten, ich habe nur das funktioniert heute, vielleicht könnte es eine andere Frage sein – Sionnach733

+1

[This] (http://www.zytrax.com/books/ldap/ch3/#objectclasses) erklärt die Regeln für objectClasses – Sionnach733

0

Ich habe das Tutorial (http://directory.staging.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html für alle, die die Änderungen sehen wollen, bevor die echte Website auf http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html online ist - das wird ein paar Stunden dauern) behoben haben.

Danke für den Bericht! Es wäre noch bequemer, eine JIRA mit einer Beschreibung der Tippfehler zu erstellen (und ein Patch ist noch besser! Die Website ist textbasiert (Abschrift) und verfügbar unter)

+1

Hallo, ich folge Link zur Verfügung gestellt oben, um eine neue Partition mit Apache ldap api ..... aber bisher gescheitert haben, immer bekommen diese Fehler .... LdapSchemaViolationException: ERR_219 Eintrag o = sevenseas enthält kein entryCsn Attribut Kannst du mir bitte helfen ...... @ Emmanuel – rishiAgar

1

kann ich nicht kommentieren, so. ..

Sionnach733: Sie können nicht 2 strukturelle ObjectClass in einem Eintrag haben, außer, wenn sie eine Vererbungsbeziehung haben. Zum Beispiel erbt OrganizationalPerson von Person, so dass Sie beide in einem Eintrag haben können (selbst wenn das Hinzufügen von OrganizationalPerson nur impliziert, dass Person auch implizit im Eintrag hinzugefügt wird).

Und, ja, sind diese Regeln ein bisschen dumm ...

Verwandte Themen