【发布时间】:2021-01-11 13:23:18
【问题描述】:
我构建了 async jersey web 服务,现在我需要使用 ldap 进行一些操作。 我已经在这种模式下配置了 Spring beam.xml:
<bean id="contextSourceTarget" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="${ldap.url}" />
<property name="base" value="${ldap.base}" />
<property name="userDn" value="${ldap.userDn}" />
<property name="password" value="${ldap.password}" />
<property name="pooled" value="false" />
</bean>
<bean id="contextSource"
class="org.springframework.ldap.pool.factory.PoolingContextSource">
<property name="contextSource" ref="contextSourceTarget" />
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="ldapTreeBuilder" class="com.me.ldap.LdapTreeBuilder">
<constructor-arg ref="ldapTemplate" />
</bean>
<bean id="personDao" class="com.me.ldap.PersonDaoImpl">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
但是当我尝试使用 ldap 时出现此错误:
Error creating bean with name 'contextSource' defined in class path resource [config/Beans.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedPoolableObjectFactory
在我的项目中,我有 commons-pool2-2.2.jar lib,但我仍然有这个错误..我尝试在 TOMCAT_PATH/lib 中添加 commons-pool2-2.2.jar 但不起作用..
更新:
如果我把 commons-pool-1.6.jar 它工作.. 但如果我想使用 pool2 我该怎么办?只有我必须更改类客栈commons-pool2-2.2.jar?
【问题讨论】: