简体   繁体   English

休眠C3P0-NoClassDefFoundError

[英]Hibernate C3P0 - NoClassDefFoundError

When my Struts app on Glassfish queries for first time, such error occurs: 当我在Glassfish上的Struts应用程序首次查询时,会发生此类错误:

Severe: Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/DataSources
Info: 2015-07-28 13:59:17 ERROR HibernateUtil:54 - Initial SessionFactory creation failed
java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/DataSources
    at org.hibernate.connection.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:176)
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143)
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:84)
    at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:459)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
    [...]

I've tried to resolve this using this article , but still same error occurs.. 我尝试使用本文解决此问题,但仍然发生相同的错误。

My dependencies I use to run this app: 我用来运行此应用程序的依赖项:

        <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>3.6.3.Final</version>
                <type>jar</type>
        </dependency>
        <!-- Hibernate c3p0 connection pool -->
        <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-c3p0</artifactId>
                <version>3.6.3.Final</version>
        </dependency>
        <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-tools</artifactId>
                <version>3.6.0.CR1</version>
        </dependency>
        <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>mchange-commons-java</artifactId>
                <version>0.2.10</version>
        </dependency>
        <dependency>
                <groupId>c3p0</groupId>
                <artifactId>c3p0-oracle-thin-extras</artifactId>
                <version>0.9.0.2</version>
        </dependency>
        <dependency>
                <groupId>com.mchange AND c3p0</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.2.1</version>
        </dependency>

This app worked perfectly without Maven.. 没有Maven的情况下,此应用程序完美运行。

Thanks for help! 感谢帮助! :) :)

In

<dependency>
   <groupId>com.mchange AND c3p0</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.2.1</version>
</dependency>

The AND c3p0 is superfluous. AND c3p0是多余的。

It should be 它应该是

<dependency>
   <groupId>com.mchange</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.2.1</version>
</dependency>

Or better yet, use the current production version 或者更好的是,使用当前的生产版本

<dependency>
   <groupId>com.mchange</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.5.1</version>
</dependency>

问题已解决-我必须将c3p0- [version] .jar添加到domains / domain1 / libs下的Glassfish libs目录中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM