spring - NoClassDefFound错误: org/apache/commons/pool/KeyedObjectPoolFactory BasicDataSource Spring

标签 spring apache jar apache-commons-dbcp

我是 Spring 新手,仍在学习中。我在 Mac 上使用 Spring Tool Suite 版本 3.5 和 Java 6。我正在尝试使用 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.jarcommons-pool2-2.2.jarcommons-collections4 -4.0.jar。但我仍然看到对 KeyedObjectPoolFactoryNoClassDefFoundError 引用。

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)

我搜索了答案并找到了 existing similar question , 但与那个不同的是,我的类路径上有 JAR。

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

最佳答案

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

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

干杯,

关于spring - NoClassDefFound错误: org/apache/commons/pool/KeyedObjectPoolFactory BasicDataSource Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23654382/

相关文章:

java - 在独立应用程序中使用 Spring

java - 使用 openEntityManagerInView 仍然得到 "failed to lazily initialize a collection of role"

linux - Go、sudo 和 apache 端口 80

android - Android sdk 和 ADT 20 Windows 64 上的 java.lang.NoClassDefFoundError

java - WildFly RestEasy 版本困惑

spring - Autowiring 字段失败异常

java - @Cachable 注解不起作用

python - Django + fcgi = 未显示对 views.py 的新编辑

java - Tomcat 访问日志的组成部分

java - 双击 vs java -jar MyJar.jar