我正在开发一个spring mvc maven项目,在初始阶段我可以解决这个错误。 在我的servlet-context.xml中,我试图生成" HibernateTransactionManager"豆子,这让我错了:
error: "Build path is incomplete. Cannot find class file for org/hibernate/HibernateException"
因为这是一个maven项目,所以我在pom.xml中添加了以下依赖项
<!-- Dependency added for spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Dependency added for Spring Security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<!-- Dependency added for AOP -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<!-- Dependency for Hibernate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate-version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${com.mysql-version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>20030825.184428</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>20030825.183949</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
<!-- Dependency for Http Client -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
<version>0.5</version>
</dependency>
我甚至可以在Maven依赖树中找到我的所有类。
我还试图在外部为spring-orm添加一个新的.jar,但这也没有用。我已经尝试过多次清理构建并重新编译,但这并没有成功。
我非常感谢您的任何投入。
答案 0 :(得分:1)
这是我的第一个答案,所以请耐心等待。 生成的错误是“无法找到org / hibernate / HibernateException的类文件”。您提供的POM列出了项目的所有依赖项,并包含对hibernate-validator jar的引用。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
如果解压缩此jar文件并搜索其内容,则无法找到名为HibernateException的类文件。这是错误的根本原因,并且您是包含HibernateException类文件的存储库。
当您使用maven时,您可以在此处查看与Hibernate相关的所有存储库 http://mvnrepository.com/artifact/org.hibernate
我选择了hibernate-core-4.2.0.Final,因为核心会建议它拥有hibernate所需的大多数主类文件。下载和解压缩jar表明HibernateException类文件存在于此处。
因此,如果使用以下条目更新POM.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.0.Final</version>
</dependency>
现在您必须让Maven将存储库下载到本地计算机(如果它不存在)并将其用于您的项目。如果您从Elcipse运行项目,请通过右键单击项目 - >运行As-&gt;来执行此操作。 Maven Clean。
希望这有帮助。
答案 1 :(得分:0)
如果您确定maven已经下载了hibernate jar并且可以在/ build中生成jar / war文件,那么问题可能如下:
有时Maven无法从服务器下载完整的JAR文件,在这些情况下也可能发生未找到类的异常。
要在您的主目录中修复此goto .m2文件夹,请删除hibernate jar并创建clean install
。这将下载新的文件集,事情应该开始起作用。
您可以通过将文件作为zip文件jar tf jar-file.jar