Java apacheDS无法创建新条目
我正在使用Java apacheDS无法创建新条目,java,apache,ldap,Java,Apache,Ldap,我正在使用apachedirectorystudio2.0.0和apacheds2.0。在创建了一个新的分区之后,如中所述,我正在尝试创建一个新条目。我选择objectClassorganizationalPerson并键入parento=sevensens,dc=com,RDNuid=Name。然后单击next并键入cn和sn属性的值。现在我单击finish,出现异常: Error while creating entry - [LDAP: error code 65 - OBJECT_CL
apachedirectorystudio2.0.0
和apacheds2.0
。在创建了一个新的分区之后,如中所述,我正在尝试创建一个新条目。我选择objectClassorganizationalPerson
并键入parento=sevensens,dc=com
,RDNuid=Name
。然后单击next并键入cn
和sn
属性的值。现在我单击finish,出现异常:
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
class,可以创建新条目。该教程存在许多问题(拼写、UI外观不同等),但我已成功导入示例数据并添加新条目
出现错误的原因如下:com包含多个结构化ObjectClass
。发生这种情况的原因是域
和组织人员
都是结构化的,不能一起工作,请尝试删除域
。有关详细信息,请参阅
要导入captain hook hierarchy.ldif
,您需要先创建一个新分区。本教程与命名约定不一致,这是导致错误的原因。
创建新分区:
ID:SevenSeas
Suffix: o=sevenSeas
出现错误的原因是教程中的,dc=com
。如果打开.ldif,您将看到没有对,dc=com
的引用
接下来取消选中从后缀DN自动生成上下文条目
复选框。它没有为示例创建适当的属性。然后添加以下属性:
o: sevenSeas
objectClass: top
objectClass: organization
description: The context entry for suffix o=sevenSeas
保存config.ldif文件并重新启动服务器。然后导入captain hook hierarchy.ldif
。
目录应该填充并添加新条目,只需右键单击一个组并添加新条目
希望这有帮助 我已经修改了教程(对于任何想在真正的站点上线之前看到更改的人来说,这需要几个小时)
谢谢你的报道!创建一个带有打字错误描述的JIRA会更方便(补丁更好!该网站是基于文本(标记)的,可在上获得)我不能评论,所以
Sionnach733:一个条目中不能有2个结构ObjectClass,除非它们具有继承关系。例如,OrganizationalPerson继承自Person,因此您可以在条目中同时包含两者(即使添加OrganizationalPerson仅意味着Person也隐式添加到条目中)
是的,这些规则有点愚蠢…Apache Directory Studio的最后一个版本(版本:2.0.0.v20151221-M10)有一个bug,生成的LDIF记录之间缺少换行符:
很容易修复,只需下载一个新的已修复版本:哇,我正在学习相同的教程。你有水手名单导入的.ldif文件吗?好的,我也有同样的问题,我会发布答案的,你是向导!!!这是真正的工作,非常感谢。但我有一个问题:只有
域
和组织人员
不能一起工作organizationalPerson
和Person
都是结构化的,并且可以一起工作。我不是100%支持结构化对象类一起工作,我今天才开始工作,也许这是解释对象类规则的另一个问题Dude我爱你。如果有人想修复文档,您必须为其创建一个补丁,然后在此Jira中提交…您好,我遵循上面提供的链接,使用apache ldap api创建一个新分区…但迄今为止失败,总是出现此错误…LdapSchemaViolationException:ERR_219 Entry o=sevenseas不包含entryCsn属性您能帮我一下吗……@Emmanuel