0

我正在做一个更大的项目,需要得到 maven'd。到目前为止,我已经通过在 WEB-INF/lib 中包含所有必需的 .jar 文件成功地测试了该项目。

maven之前的库:

  • hibernate3.jar (Hibernate 3.6.Final)
  • log4j.jar (1.2.8)
  • postgresql-9.2-1002.jdbc4.jar (PostgreSQL 9.2 JDBC4)
  • commons-codec1.8.jar (Apache Commons Codec 1.8)
  • commons-fileupload1-3.jar (Apache Commons Fileupload 1.3)
  • Commons-lang3-3-1 (Apache Commons Lang3 3.1)
  • cos.jar (O'Reilly 05Nov2005)

在 /Configure/Convert To Maven 之后,我添加了所有依赖项:

<dependencies>      
        <!-- hibernate framework -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.6.10.Final</version>
        </dependency>
               
        <!-- logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.5</version>
        </dependency>
            
        <!-- PostgreSQL-JDBC -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.2-1002-jdbc4</version>
        </dependency>
        <!-- upload - O'reilly COS -->
        <dependency>
            <groupId>servlets.com</groupId>
            <artifactId>cos</artifactId>
            <version>05Nov2002</version>
        </dependency>
         <!-- Apache Commons -->   
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.8</version>
        </dependency>  
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>
    </dependencies>

到项目,但不知何故总是得到一个java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError: Could not initialize class business.HibernateUtil
    business.HibernateEngine.searchBatch(HibernateEngine.java:168)
    business.HibernateEngine.searchBatch(HibernateEngine.java:163)
    business.PersonAdmin.searchUser(PersonAdmin.java:222)
    ui.login2.doGet(login2.java:161)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

包业务中的两个类(HibernateUtil 和 HibernateEngine)设置程序中使用的会话。这里它在 HibernateEngine 中崩溃(第 167-169 行):

protected List searchBatch(String hqlQuery, boolean close) {
        Session session = HibernateUtil.currentSession();
        Transaction tx = session.beginTransaction();

我尝试了所有库的不同版本,但仍然没有取得任何进展。我发现java.lang.NoClassDefFoundError通常是由多个导入的相同库引起的。难道它与休眠核心导入有关吗?我检查了它的 maven 存储库,但不知何故我没有找到任何双库。

这是我的.classpath:

类路径

我真的很绝望,希望有人可能有一个想法!

4

1 回答 1

1

看看这篇文章:Hibernate java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver

他们删除了“hibernate-tools”并添加了“hibernate-core”。

于 2013-07-23T17:11:29.377 回答