我正在做一个更大的项目,需要得到 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:
我真的很绝望,希望有人可能有一个想法!