【问题标题】:java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPooljava.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
【发布时间】:2014-02-07 02:48:02
【问题描述】:

我正在尝试在使用 tomcat 6 和 postgresql 的 tomcat 项目下将 org.apache.commons.dbcp.BasicDataSource 配置为 web.xml 中的 bean 9.1

我的 servletdispacher.xml

`

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />




<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.postgresql.Driver" />
    <property name="url" value="jdbc:postgresql://localhost:5432/car" />
    <property name="username" value="postgres" />
    <property name="password" value="123" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="annotatedClasses">
        <list>
            <value>DAOModel.Tblusers</value>
        </list>
    </property>
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="DAOModel.Tblusers" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

` 和错误:

javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:724)

【问题讨论】:

    标签: java spring-mvc spring-transactions hibernate-annotations


    【解决方案1】:

    似乎'commons-pool' jar 没有被部署。如果您使用的是 eclipse,则可以通过转到项目的属性并单击部署程序集来检查部署了哪些 jar。

    【讨论】:

    • 我从 netbeans 使用并且存在于 web-inf\lib 中的 commons-pool2-2.1.jar
    • 好吧,我可能错了。但是您的问题标题(NoClassDefinitionFound)中的这个错误意味着在您部署的所有 jar 中,它们都没有“org.apache.commons.pool.impl.GenericObjectPool”类。我建议使用“Tattletale”工具来查看您的项目 jar 中发生了什么。
    【解决方案2】:

    这发生在我身上,用于 Mint 15 上的 tomcat6 包。安装有 /usr/share/tomcat6/lib/commons-pool.jar -&gt; ../../java/commons-pool.jar/usr/share/java/commons-pool.jar -&gt; commons-pool-1.5.6.jar 已损坏。从我的本地 Maven 存储库 sudo cp ~/.m2/repository/commons-pool/commons-pool/1.5.6/commons-pool-1.5.6.jar /usr/share/java 复制它为我修复了它。

    【讨论】:

      【解决方案3】:

      可能是您的 commons-pool-x.x.x.jar 不在部署文件夹的 lib 文件夹中,这可以通过将这个 jar 文件复制到 apache-tomcat-7.0.54\lib 文件夹中来解决

      【讨论】:

        【解决方案4】:

        我也遇到了一些问题,在我的 repo commons-pool2-2.1.jar 中没有正确下载。我们需要下载正确的jar。

        【讨论】:

          猜你喜欢
          • 2014-10-06
          • 1970-01-01
          • 2011-07-07
          • 2021-05-20
          • 2017-01-19
          • 1970-01-01
          • 1970-01-01
          • 2011-12-02
          • 1970-01-01
          相关资源
          最近更新 更多