Spring MVC Hibernate - 构建路径不完整

时间:2012-04-16 02:41:25

标签: spring hibernate maven buildpath

我正在开发一个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,但这也没有用。我已经尝试过多次清理构建并重新编译,但这并没有成功。

我非常感谢您的任何投入。

2 个答案:

答案 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

打开来检查文件是否已正确下载