1

私は春のmvc mavenプロジェクトに取り組んでいましたが、初期段階でこのエラーに遭遇しました。私の servlet-context.xml で、このエラーをスローする「HibernateTransactionManager」Bean を生成しようとしています。

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 を外部から追加しようとしましたが、それもうまくいきませんでした。ビルドのクリーンアップと再コンパイルを数回試みましたが、うまくいきませんでした。

ご意見をお聞かせいただければ幸いです。

4

2 に答える 2

1

これは私の最初のSO回答ですので、ご容赦ください。生成されるエラーは、「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 からプロジェクトを実行している場合は、プロジェクトを右クリックし、[実行] -> [Maven Clean] を選択します。

お役に立てれば。

于 2013-04-12T12:04:02.710 に答える
0

Mavenが休止状態のjarをダウンロードし、ビルドから生成されたjar / warファイルで利用可能であることが確実な場合、問題は次のようになります。

Mavenがサーバーから完全なJARファイルをダウンロードできない場合があります。その場合も、クラスが見つからないという例外が発生する可能性があります。

ホームディレクトリのこのgoto.m2フォルダを修正するには、休止状態のjarを削除して。を作成しclean installます。これにより、新しいファイルセットがダウンロードされ、動作が開始されます。

ファイルをzipファイルとして開くと、ファイルが正しくダウンロードされたかどうかを確認できます。jar tf jar-file.jar

于 2012-04-16T05:14:36.137 に答える