在Pentaho水壶中,在步骤ldap输出中插入许多objectClass

时间:2015-05-08 19:43:27

标签: ldap pentaho etl kettle

我在LDAP中插入具有以下结构的用户。

LDAP STRUCTURE

我正在使用LDAP输出步骤,如下所示。

LDAP STEP

但是在试图证明转换时发出以下错误:

2015/05/08 16:04:03 - INSERT USR LDAP.0 - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : Exception : 
2015/05/08 16:04:03 - INSERT USR LDAP.0 - Error inserting for entry with DN = [uid=mark1,ou=users,dc=ldap,dc=test,dc=org]!
2015/05/08 16:04:03 - INSERT USR LDAP.0 - [LDAP: error code 65 - no structural object class provided]
2015/05/08 16:04:03 - INSERT USR LDAP.0 - ERROR (version 5.0.1-stable, build 1 from 2013-11-15_16-08-58 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2015/05/08 16:04:03 - INSERT USR LDAP.0 - Error inserting for entry with DN = [uid=mark1,ou=users,dc=ldap,dc=test,dc=org]!
2015/05/08 16:04:03 - INSERT USR LDAP.0 - [LDAP: error code 65 - no structural object class provided]
2015/05/08 16:04:03 - INSERT USR LDAP.0 - 
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at org.pentaho.di.trans.steps.ldapinput.LDAPConnection.insert(LDAPConnection.java:354)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at org.pentaho.di.trans.steps.ldapoutput.LDAPOutput.processRow(LDAPOutput.java:251)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at org.pentaho.di.trans.step.RunThread.run(RunThread.java:60)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at java.lang.Thread.run(Thread.java:722)
2015/05/08 16:04:03 - INSERT USR LDAP.0 - Caused by: javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - no structural object class provided]; remaining name 'uid=mark1,ou=users,dc=ldap,dc=test,dc=org'
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3118)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3033)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2840)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:811)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(ComponentDirContext.java:337)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:266)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:254)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at javax.naming.directory.InitialDirContext.createSubcontext(InitialDirContext.java:197)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   at org.pentaho.di.trans.steps.ldapinput.LDAPConnection.insert(LDAPConnection.java:351)
2015/05/08 16:04:03 - INSERT USR LDAP.0 -   ... 3 more

我不明白为什么我发送这个错误,如果它们都是所需的对象和属性。

我希望你能提供帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题

ldap传递输出有一个部分,其中多个值的分隔符你如何对象类,然后你发送一个参数到所有对象名称定义

因此:

ObjectClass = "inetOrgPerson;organizationalPerson;person;top;shadowAccount";

这是定义分隔符的地方

LDAP-MULTI