NoClassDefFoundError:org / apache / commons / pool / KeyedObjectPoolFactory BasicDataSource Spring [英] NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory BasicDataSource Spring

查看:178
本文介绍了NoClassDefFoundError:org / apache / commons / pool / KeyedObjectPoolFactory BasicDataSource Spring的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Spring的新手,还在学习。我在Mac上使用Spring Tool Suite 3.5和Java 6。我正在尝试使用BasicDataSource

I'm new to Spring, still learning. I'm using Spring Tool Suite version 3.5 with Java 6 on my Mac. I'm attempting to use BasicDataSource

<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>

我的类路径上有以下jar文件: commons-dbcp- 1.4.jar commons-pool2-2.2.jar commons-collections4-4.0.jar 。但我仍然看到 NoClassDefFoundError KeyedObjectPoolFactory 的引用。

I have the following jar files on my class path: commons-dbcp-1.4.jar, commons-pool2-2.2.jar, commons-collections4-4.0.jar. But I'm still seeing a NoClassDefFoundError reference to 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)

我是搜索了一个答案,找到了一个现有的类似问题
但不像那个,我在我的类路径上有JAR。

I've searched for an answer and found an existing similar question, but unlike that one, I've got the JARs on my classpath.

我在此论坛中格式化代码时遇到问题。我的XML代码没有出现。抱歉。

I have trouble formatting code in this forum. My XML code isn't appearing. Sorry.

推荐答案

你正在混淆这些版本。 KeyedObjectPoolFactory 类存在于 commons-pool 的1.x分支中,但不存在于2.x中。您应该尝试使用 commons-pool-1.5.4 (这是 commons-dbcp-1.4 )

You're mixing up the versions. The KeyedObjectPoolFactory class exists in the 1.x branch of commons-pool, but not in 2.x. You should try with commons-pool-1.5.4 instead (which is the correct version dependency for commons-dbcp-1.4)

我可以建议使用例如。 Maven 管理您的依赖项 - 您将免费获得正确版本的传递依赖项(大多数情况下至少... )

And may I suggest using eg. Maven to manage your dependencies - you'll get the transitive dependencies versioned correctly for free (mostly at least...)

干杯,

这篇关于NoClassDefFoundError:org / apache / commons / pool / KeyedObjectPoolFactory BasicDataSource Spring的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆