如何使用OpenLdap创建ObjectChangeListener

时间:2012-09-12 08:17:21

标签: jndi openldap

我正在尝试使用带有openldap连接的ObjectChangeListener。 我有以下java代码

public class MyListener implements ObjectChangeListener
{
 // Here my class variable
 public MyListener (DirContext ldapContext, String myDn) throws InternalException
{
  try
  {
    // Make a new connection without pooling
     Hashtable env = new Hashtable(ldapContext.getEnvironment());
     // env is set by other classes : in our case we use the factory java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

     InitialDirContext localContext = new InitialDirContext(env);

     //     Get the EventContext for registering the listener
     evtCtx = (EventContext) localContext.lookup("");
     localContext.close();  
     // Register the listener for namespace change events
     evtCtx.addNamingListener(myDn, EventContext.OBJECT_SCOPE, this);

  }
  catch (NamingException e)
  {
      throw new InternalException("Error while registering my listener");
  }
}
 //some methods
}

当我创建一个新的MyListenerObject时,我的openLdap服务器发送了以下错误。

javax.naming.OperationNotSupportedException:[LDAP:错误代码12 - 无法识别关键扩展名];剩余名称'ou = MyOU,O = MyOrg'

我不知道我需要做什么(或者如果可能的话)创建一个OpenLdap的ObjectListener。

THX

1 个答案:

答案 0 :(得分:0)

你做不到。截至当前版本(2.4),OpenLDAP不支持它。