我想知道如何使用TOMCAT中的JNDI配置连接外部LDAP。
我的代码就像
try {
InitialContext iniCtx = new InitialContext();
ctx = (LdapContext) iniCtx.lookup("external/ldap/worker");
//System.out.println("LDAP Context initialized::"+ctx);
if(ctx!=null) {
urlProvider=ctx.getEnvironment().get("java.naming.provider.url").toString();
}
} catch (NamingException ne) {
throw new NamingException(ne.toString());
}
Tomcat中的My Context.xml具有以下条目
<Resource
useDataSourceFactory="true"
name="external/ldap/worker"
auth="Container"
type="com.sun.jndi.ldap.LdapCtxFactory"
java.naming.factory.initial="com.sun.jndi.ldap.LdapCtxFactory"
java.naming.provider.url="ldap://corpt605.corporate.***.***:13891"
java.naming.security.authentication="simple"
java.naming.security.principal="uid=cpasysuser,ou=******,o=***.com"
java.naming.security.credentials="*********"
/>
我的web.xml有以下条目
<resource-ref>
<description>E2k Ldap Datasource example</description>
<res-ref-name>external/ldap/worker</res-ref-name>
<res-type>com.sun.jndi.ldap.LdapCtxFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
当我使用这个JNDI数据源时,我得到以下错误:
2014年10月8日10:12:03,394错误waveset.ge.commons.LdapJndiConnection_CDI:52 - getLdapCntxt ::在Ldap上下文查找期间发生错误javax.naming.NameNotFoundException:名称[external / ldap / worker]未绑定在此上下文中。无法找到[外部]。
有什么问题?