私のプロジェクトでは、Hibernate と Jersey の両方を使用しています。以下のリンクから、Hibernate、Jersey とライブラリの競合があります。
http://www.hildeberto.com/2008/05/hibernate-and-jersey-conflict-on.html
Jersey は、Hibernate でも使用される ASM ライブラリを使用しますが、バージョンは異なります。Hibernate はバージョン 1.5.3 を使用し、Jersey は 3.5.1 を使用します。大きな違い!アーキテクチャが異なるため、古いバージョンを削除して新しいバージョンをそこに置くことはできません。バージョン 1.5.3 には「attrs」パッケージがありますが、3.5.1 には「署名」パッケージはありません。ASM パッケージは、Hibernate ライブラリの一部である cglib パッケージに必要です。そのパッケージを削除すると、Jersey は正しく動作しますが、Hibernate は動作しなくなります。この競合を解決するには、cglib.jar の代わりに cglib-nodep.jar を使用し、Jersey で ASM バージョン 3.x を保持します。cglib-nodep.jar には、cglib.jar が必要とするいくつかの ASM クラスが含まれており、クラスの競合を避けるためにパッケージ名を変更しています。
しかし、、、、を含めた後、エラーがasm-3.1.jar
発生します:asm-attrs-2.2.3.jar
asm-commons-3.1.jar
asm-util-3.1.jar
cglib-nodep-2.1_3sources.jar
私が配置した場合cglib 2.1.3
:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
私が配置した場合cglib-nodep-2.1_3-sources.jar
:
java.lang.ClassNotFoundException: net.sf.cglib.core.KeyFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
この問題を解決するために必要な jar ファイルをリストしてください。