2014-05-14 13 views
6

Jestem nowy w Spring, wciąż się uczę. Używam Spring Tool Suite w wersji 3.5 z Java 6 na moim Macu. Ja próbuje użyć BasicDataSourceNoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory BasicDataSource Spring

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" value="${jdbc.driver}"/> 
     <property name="url" value="${jdbc.url}"/> 
     <property name="username" value="${jdbc.username}"/> 
     <property name="password" value="${jdbc.password}"/> 
    </bean> 

mam następujące pliki jar na mojej ścieżce Klasa: commons-dbcp-1.4.jar, commons-pool2-2.2.jar, commons-collections4-4.0.jar. Ale nadal widzę odniesienie NoClassDefFoundError do KeyedObjectPoolFactory.

Error creating bean with name 'dataSource' defined in class path resource [test- infrastructure-config.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) 
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630) 
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) 

Rozglądałem się na odpowiedź i znalazł existing similar question, ale w przeciwieństwie do tego jednego, mam słoiki na mojej ścieżce klasy.

Mam problem z formatowaniem kodu na tym forum. Mój kod XML się nie pojawia. Przepraszam.

+1

może być problem z numerem wersji słoików .... po prostu sprawdź, czy numery wersji słoików są zgodne. –

+0

Cześć Raju Rudru, Tak, odkryłem, że to jest problem. – user3636521

Odpowiedz

6

Wymieszać wersje. Klasa KeyedObjectPoolFactory istnieje w gałęzi 1.x o numerze commons-pool, ale nie w wersji 2.x. Powinieneś wypróbować zamiast tego z commons-pool-1.5.4 (która jest poprawną zależnością od wersji dla commons-dbcp-1.4)

I czy mogę zasugerować użycie np. Maven zarządzać zależnościami - dostaniesz przechodnie zależności wersjonowanych właściwie za darmo (przynajmniej w większości ...)

Wiwaty,

+1

Wygląda na to, że muszę poczekać 8 godzin, zanim odpowiem na własne pytanie, ponieważ mam mniej niż 10 reputacji? Ale dzięki Anders R.Bystrup i Raju Rudru, tak W międzyczasie odkryłem, że masz rację. Oto Javadoc dla fotografia Pool 2.2 API http://commons.apache.org/proper/commons-pool/api-2.2/index.html A oto wersja 1.6 http: //commons.apache. org/proper/commons-pool/api-1.6/index.html Wersja 1.6 to ostatnia wersja zawierająca KeyedObjectPoolFactory. Więc uzyskałem commons-pool-1.6.jar i dodałem go do mojej ścieżki klasy i rozwiązałem ten błąd. – user3636521

+0

Nie mogę też głosować w górę. Ale dziękuję oboje tak :) – user3636521

+0

@ user3636521, zaakceptuj to jako odpowiedź atleast !! –

Powiązane problemy