2010-06-10 32 views
6
kullanıyorum Bahar Gömülü Ldap Sunucusu büyütmeye çalışıyorum

kullanarak gömülü bir ldap sunucusu yükseltmek ise: NullPointerException yayı

Ama bu istisna oluyoruz değilim: Ben

2010-06-10 14:33:35,559 ERROR main ApacheDSContainer start - Server startup failed 
java.lang.NullPointerException 
     at org.apache.directory.server.core.schema.DefaultSchemaService.initialize(DefaultSchemaService.java:382) 
     at org.apache.directory.server.core.DefaultDirectoryService.initialize(DefaultDirectoryService.java:1425) 
     at org.apache.directory.server.core.DefaultDirectoryService.startup(DefaultDirectoryService.java:907) 
     at org.springframework.security.ldap.server.ApacheDSContainer.start(ApacheDSContainer.java:160) 
     at org.springframework.security.ldap.server.ApacheDSContainer.afterPropertiesSet(ApacheDSContainer.java:113) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) 
     at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4212) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) 
     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 
     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) 
     at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) 
     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
     at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 

spring 3.0.2'i kullanarak ve ldap için şu kavanozları ekledik: spring-security-ldap-3.0.2.RELEASE.jar spring-ldap-1.3.0.RELEASE-all.jar apacheds-all-1.5.6 .jar shared-ldap-0.9.15.jar slf4j-api-1.5.6.jar slf4j-basit-1.5.6.jar

Yardım lütfen .... LDAP istemcisi tarafından kullanılan yetkilendirme devlet şeması erişimi olup olmadığını

+0

Ben ayıklayıcı burada en iyi arkadaşınız olduğuna inanıyoruz .. – Espen

cevap

1

kontrol edin.

3

@Zorkus: Apache Dizini ile karşılaştığınız tam olarak ne tür bir sorunla karşılaştığınızdan emin değilim ve bunun temel nedeni nedir, ancak ihtiyacınız olan tek şey bahar ile entegrasyon testi için çalışan bir yerleşik LDAP sunucusudur Güvenlik sonra bazı alternatifleri düşünmek isteyebilirsiniz.

Kısa bir süre önce alternatifleri araştırmaya başladım, çünkü Apache Directory ile çok fazla zaman ve çaba harcamadan rağmen ne istediğimi anlayamadım. (Temel olarak, bir Active Directory örneğinin şemasını ve kullanıcı veritabanını katıştırılmış bir sunucuya çoğaltmak istedim.)

Ne buldum, UnboundID LDAP SDK'nın güzel bir yedek olmasıdır. Onunla bütünleşme, bahar içeriğinizde (<security:ldap-server/> gibi) bir linerden biraz daha fazla çaba gerektirir, ancak çok daha fazla değil. LDAP sunucusu kod sadece birkaç satır gerektirir çalıştırılması:

InMemoryDirectoryServerConfig config = 
     new InMemoryDirectoryServerConfig("dc=example, dc=com"); 

// schema config only necessary if the standard 
// schema provided by the library doesn't suit your needs 
config.setSchema(Schema.getSchema("your-custom-schema.schema")); 

// listener config only necessary if you want to make sure that the 
// server listens on port 33389, otherwise a free random port will 
// be picked at runtime - which might be even better for tests btw. 
config.setListenerConfigs(
     new InMemoryListenerConfig("myListener", null, 33389, null, null, null)); 

InMemoryDirectoryServer ds = new InMemoryDirectoryServer(config); 

ds.startListening(); 

// import your test data from ldif files 
ds.importFromLDIF(true,"content.ldif"); 

Eğer iş bunun için gerekecek tek bağımlılıktır:

<dependency> 
    <groupId>com.unboundid</groupId> 
    <artifactId>unboundid-ldapsdk</artifactId> 
    <version>2.3.1</version> 
</dependency> 

O yukarıdaki kodu sarmak için çok kolay olurdu Bahar içeriğinizden başlatabileceğiniz ve yapılandırabileceğiniz bir sınıf. UnboundID LDAP SDK'sına bakın üzerindeki dokümantasyon ve kod örnekleri için

: https://www.unboundid.com/products/ldap-sdk/docs/

(. Ben herhangi bir şekilde UnboundID bağlı değilim)