早上好/下午没有找到,com.sun.jndi.ldap.LdapCtxFactory:类的servlet
我有LDAP连接器的问题,当我在我的单元测试没有问题,使用它,但是当它是在应用程序服务器环境中调用,它似乎有类路径问题,但该类使用java 1.6.17(我使用的版本)提供。
我使用spring-ldap来启动我的连接。
public static LdapContextSource getLdapContextSource(final String url, final String base) throws Exception {
LdapContextSource ldapContextSource = new LdapContextSource();
ldapContextSource.setUrl(url);
ldapContextSource.setBase(base);
ldapContextSource.setPooled(true);
//ldapContextSource.setContextFactory(LdapCtxFactory.class);
ldapContextSource.afterPropertiesSet();
return ldapContextSource;
}
这里是日志:
2010-08-10 09:46:38,183 : StandardWrapperValve.invoke : Servlet.service() for servlet default threw exception
java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.ow2.easybeans.loader.EasyBeansClassLoader.findClass(EasyBeansClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at org.ow2.easybeans.loader.EasyBeansClassLoader.loadClass(EasyBeansClassLoader.java:238)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.springframework.ldap.core.support.AbstractContextSource.class$(AbstractContextSource.java:67)
at org.springframework.ldap.core.support.AbstractContextSource.<clinit>(AbstractContextSource.java:67)
at org.zenithar.security.connectors.impl.ldap.LdapContextFactory.getLdapContextSource(LdapContextFactory.java:16)
感谢所有。 此致敬礼。
它是相同的VM(1.6.0u17),我试图更新到U21,但它是相同的错误。 – Zenithar 2010-08-10 09:56:21
这似乎是一个类加载器的问题...任何建议? – Zenithar 2010-08-10 12:10:13
也许是一个OSGi问题,我在Jonas 5.1上运行我的webapp。调查正在进行中... – Zenithar 2010-08-10 13:28:39