Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- embedded ApacheDS in my application, it fails on service.startup() -> DefaultSchemaService.getSchemaManager() returns null
- Exception in thread "main" java.lang.NullPointerException
- at org.apache.directory.server.core.schema.DefaultSchemaService.initialize(DefaultSchemaService.java:380)
- at org.apache.directory.server.core.DefaultDirectoryService.initialize(DefaultDirectoryService.java:1425)
- at org.apache.directory.server.core.DefaultDirectoryService.startup(DefaultDirectoryService.java:907)
- at Test3.runServer(Test3.java:41)
- at Test3.main(Test3.java:24)
- import java.util.Properties;
- import javax.naming.Context;
- import javax.naming.NamingEnumeration;
- import javax.naming.NamingException;
- import javax.naming.directory.Attributes;
- import javax.naming.directory.DirContext;
- import javax.naming.directory.InitialDirContext;
- import javax.naming.directory.SearchControls;
- import javax.naming.directory.SearchResult;
- import org.apache.directory.server.core.DefaultDirectoryService;
- import org.apache.directory.server.core.partition.Partition;
- import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
- import org.apache.directory.server.ldap.LdapServer;
- import org.apache.directory.server.protocol.shared.transport.TcpTransport;
- import org.apache.directory.shared.ldap.entry.ServerEntry;
- import org.apache.directory.shared.ldap.name.DN;
- public class Test3 {
- public static void main(String[] args) throws Exception {
- runServer();
- testClient();
- }
- static void runServer() throws Exception {
- DefaultDirectoryService service = new DefaultDirectoryService();
- service.getChangeLog().setEnabled(false);
- Partition partition = new JdbmPartition();
- partition.setId("apache");
- partition.setSuffix("dc=apache,dc=org");
- service.addPartition(partition);
- LdapServer ldapService = new LdapServer();
- ldapService.setTransports(new TcpTransport(1400));
- ldapService.setDirectoryService(service);
- service.startup();
- // Inject the apache root entry if it does not already exist
- try {
- service.getAdminSession().lookup(partition.getSuffixDn());
- } catch (Exception lnnfe) {
- DN dnApache = new DN("dc=Apache,dc=Org");
- ServerEntry entryApache = service.newEntry(dnApache);
- entryApache.add("objectClass", "top", "domain", "extensibleObject");
- entryApache.add("dc", "Apache");
- service.getAdminSession().add(entryApache);
- }
- DN dnApache = new DN("dc=Apache,dc=Org");
- ServerEntry entryApache = service.newEntry(dnApache);
- entryApache.add("objectClass", "top", "domain", "extensibleObject");
- entryApache.add("dc", "Apache");
- service.getAdminSession().add(entryApache);
- ldapService.start();
- }
- static void testClient() throws NamingException {
- Properties p = new Properties();
- p.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
- p.setProperty(Context.PROVIDER_URL, "ldap://localhost:1400/");
- p.setProperty(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
- p.setProperty(Context.SECURITY_CREDENTIALS, "secret");
- p.setProperty(Context.SECURITY_AUTHENTICATION, "simple");
- DirContext rootCtx = new InitialDirContext(p);
- DirContext ctx = (DirContext) rootCtx.lookup("dc=apache,dc=org");
- SearchControls sc = new SearchControls();
- sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
- NamingEnumeration<SearchResult> searchResults = ctx.search("", "(objectclass=*)", sc);
- while (searchResults.hasMoreElements()) {
- SearchResult searchResult = searchResults.next();
- Attributes attributes = searchResult.getAttributes();
- System.out.println("searchResult.attributes: " + attributes) ;
- }
- }
- }
- service.setWorkingDirectory(new File("data"));
Add Comment
Please, Sign In to add comment