Hi all,

currently I try to update the example on how to embedd ApacheDS in a WebApp

http://directory.apache.org/apacheds/1.5/embedding-apacheds-as-a-web-application.html

in order to let it work with ApacheDS 1.5.4. The API has been changed since 1.5.1 (for which the example has been created for), hence the source code examples do not work anymore.

My web app is already able to start and stop a 1.5.4 ApacheDS server via a ServletContextListener.

Now I have a question regarding an embedded client. In the example, a servlet connects to the server without wire protocol (embedded). It uses JNDI for that. The old cfg does not seem to work. An env like this

---

Hashtable<Object, Object> env = new Hashtable<Object, Object>();
env.put(Context.PROVIDER_URL, "");
env.put(Context.INITIAL_CONTEXT_FACTORY, CoreContextFactory.class.getName() );
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
env.put(Context.SECURITY_CREDENTIALS, "secret");
env.put(Context.SECURITY_AUTHENTICATION, "simple");

---

causes an error, if the InitialContext is created:

javax.naming.ConfigurationException: Cannot find directory service in environment: {java.naming.factory.initial=org.apache.directory.server.core.jndi.CoreContextFactory, java.naming.provider.url=, java.naming.factory.url.pkgs=org.apache.naming, java.naming.security.authentication=simple, java.naming.security.principal=uid=admin,ou=system, [EMAIL PROTECTED]

---

It seems that I have to do something like this:

env.put( DirectoryService.JNDI_KEY, directoryService );

as in AbstractServerTest. Is this right? In this case, I have to remember the DirectoryService instance somewhere. Solvable, but the old way was easier ... Or am I totally wrong?

Thanks in advance,
    Stefan



Reply via email to