2014-11-08 2 views
0

Я строю асинхронные веб-службы, и теперь мне нужно сделать некоторые операции с ldap. У меня есть настройки Spring beam.xml в этом режиме:Ошибка с пулом Spring ldap

<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 

В моем проекте я имею Обще-pool2-2.2.jar Lib, но все же у меня есть это error..i попытаться добавить Обще-pool2-2.2.jar в TOMCAT_PATH/Lib, но не работ ..

UPDATE:

Если я ставлю commons-pool-1.6.jar, это сработает. Но если я хочу использовать pool2, как я могу это сделать? только я должен изменить класс innons-pool2-2.2.jar?

ответ

1

К сожалению, Spring-Ldap использует общий бассейн, а не общий бассейн2. Как вы обнаружили, класс org.apache.commons.pool.KeyedPoolableObjectFactory не существует в commons-pool2 (он имеет другую структуру пакета), следовательно, ошибка.

Существует проблема Jira для проекта Spring-Ldap с просьбой обновить/поддержку Обще-pool2: https://jira.spring.io/browse/LDAP-316

До этого не было завершено, вам придется использовать Викисклад бассейн 1.6.

+0

общедоступный фонд 2 – Marged