2013-11-15 3 views
8

Я использую Apache Directory Studio 2.0.0 и ApacheDS 2.0. После создания нового раздела o=SevenSeans,dc=com, как сказано в http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html, я пытаюсь создать новую запись. Я выбираю objectClass organizationalPerson и типа parent o=SevenSeans,dc=com, RDN uid=Name. Затем нажмите кнопку next и введите значение cn и sn атрибутов. Теперь я нажимаю закончить и есть исключение:apacheDS не удалось создать новую запись

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') 
) 
]] 

Если я использую import->LDIF и выбрать 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] 

Как это исправить? Это нормально создать новую запись, если я выберу класс top.

+0

ничего себе, я просто работать через тот же учебник. у вас есть файл .ldif, импортированный со списком матросов? – Sionnach733

+0

@ Sionnach733 UPD –

+0

ОК, у меня была такая же проблема, я отправлю ответ – Sionnach733

ответ

13

Существует ряд проблем с этим учебником (орфография, пользовательский интерфейс выглядит по-другому и т. Д.), Но мне удалось импортировать образцы данных и добавить новую запись.

ваша ошибка возникает по этой причине: com contains more than one STRUCTURAL ObjectClass. это происходит потому, что domain и organizationalPerson являются структурными и не будут работать вместе, попробуйте удалить domain. Для получения дополнительной информации см. LDAP objectClasses

Для импорта captain-hook-hierarchy.ldif необходимо создать новый раздел первым. Учебное пособие несовместимо с соглашениями об именах и является причиной вашей ошибки. Создать новый раздел:

ID:SevenSeas 
Suffix: o=sevenSeas 

Ошибка вы получаете из-за ,dc=com из учебника. если вы откроете .ldif, вы увидите, что нет ссылки на ,dc=com.

Затем снимите флажок Auto-generate context entry from suffix DN. он не создает соответствующие атрибуты для примера. Затем добавьте следующие атрибуты:

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

Сохраните файл config.ldif и перезапустите сервер. Затем импортируйте captain-hook-hierarchy.ldif. Каталог должен заполнить и добавить новые записи, просто щелкните правой кнопкой мыши по группе и Add new entry.

Надеюсь, это поможет!

+1

УДИВИТЕЛЬНЫЙ, ты волшебник !!! Это настоящая работа, большое спасибо. Но у меня есть 1 вопрос: существует только «домен», а «organizerPerson» не может работать вместе? 'organizorerson' и' Person' являются структурными и работают вместе. –

+0

Я не 100%, на котором структурные объектыClasses работают вместе, я только получил эту работу сегодня, возможно, это может быть еще один вопрос – Sionnach733

+1

[This] (http://www.zytrax.com/books/ldap/ch3/#objectclasses) объясняет правила для objectClasses – Sionnach733

0

Я исправил учебник (http://directory.staging.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html для тех, кто хочет увидеть изменения до того, как настоящий сайт на http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html находится в режиме онлайн - это займет пару часов).

Спасибо за сообщение! Было бы еще удобнее создать JIRA с описанием типовых образцов (и исправление еще лучше!) Веб-сайт является текстовым (markdown) и доступен по адресу http://svn.apache.org/repos/asf/directory/site/trunk/content/)

+1

Привет, я следую приведенной выше ссылке, чтобы создать новый раздел, используя apache ldap api ..... но до сих пор не удалось, всегда получая это Ошибка .... LdapSchemaViolationException: ERR_219 Запись o = sevenseas не содержит атрибута entryCsn Можете ли вы, пожалуйста, помочь мне ...... @ Emmanuel – rishiAgar

1

Я не могу комментировать, так что. ..

Sionnach733: у вас не может быть 2 структурных ObjectClass в записи, кроме, если у них есть отношение наследования. Например, OrganizationalPerson наследует от Person, поэтому вы можете иметь оба в записи (даже если добавление OrganizationalPerson подразумевает, что в записи также неявно добавляется человек).

И да, эти правила немного глупо ...

Смежные вопросы