0

休止状態の依存関係を持つ Jar モジュールを作成しました

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.5.6-Final</version>
</dependency>

Jar モジュールは適切にコンパイルされます。その Jar モジュールは、休止状態の依存関係を持つ War モジュールによって参照されます

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.0.Final</version>
</dependency>

実行時に War モジュールは例外を与えます

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource

続いて

java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V

休止状態のバージョンに非互換性があるようです。依存関係が Jar モジュールから削除されたら。すべて正常に動作します。しかし、その Jar モジュールにはその依存関係が必要です。どうすればこれを克服できますか?

4

2 に答える 2

0

jar と war の休止状態のバージョンが同じであることを確認できませんか?

于 2013-07-11T08:41:17.803 に答える
0

Hibernate 3.6hibernate-annotationsが にマージされたためhibernate-core(これは の推移的な依存関係ですhibernate-entitymanager)。hibernate-annotationsもう明示的に宣言する必要はありません。

于 2013-07-11T08:36:44.067 に答える