1

Struts2 コンベンション プラグイン (2.3.8) を hibernate (netbeans フレームワーク プラグイン 3.2.5) と一緒に使用したいのですが、2 つの異なる asm.jar バージョンの前に競合があります。

Hibernate は struts2 fw で正常に動作しますが、コンベンション プラグインを追加するとエラーが発生します:

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
  • Hibernate 3.2.5 にはasm.jarが必要
  • Struts2 規約プラグインにはasm-3.3.jarが必要です

IMHO コンベンション プラグインには class: ClassWriter が必要です。これは asm-3.3.jar にありますが、asm.jar を調べます。

  • Mavenでテスト済み(競合はありませんが、実行されていません)
  • Mavenなしでテスト済み(実行されていない)

休止状態 3.2.5 を上位バージョンに変更できない場合、これを達成するための解決策はありますか?

4

3 に答える 3

0

1 つのハックは、hibernate プラグイン ライブラリ asm.jar を asm-3.3.jar で更新することです。asm-3.3.jar を使用して、Hiberate に特定の問題があるかどうかを確認する必要があります。

それがうまくいかない場合、私が考えることができることはほとんどありません

  • モジュール化 (hibernate 関連のクラスをサブプロジェクトとして移動し、ライブラリをサブプロジェクトに制限)
  • 上記が不可能な場合は、コール スタック内でクラスローダー キャッシュを操作する場所を見つけます (ロードされたクラスを破棄し、特定の jar からロードするなど)。個人的には、これを維持するのは苦痛です。

関連記事

于 2012-12-28T03:55:04.030 に答える
0

可能であれば、Struts 2.3.8 と同じバージョンの asm ライブラリを使用する最新バージョンに Hibernate をアップグレードしてみてください。asm ライブラリを Hibernate セットから除外することもできます。Maven では、セクションを追加する必要があります。

于 2012-12-28T07:10:04.443 に答える
0

私見の問題は、ライブラリの競合ではありません。私はライブラリのみで使用Hibernate 3.2.5.gaしています。私のプロジェクトで使用しているライブラリ (とのみに関するもの) は次のとおりです。Struts 2.3.7asmHibernateStruts

 ├── hibernate
 │   ├── dom4j-1.6.1.jar
 │   ├── ehcache-1.2.3.jar
 │   ├── hibernate3.jar
 │   ├── hibernate-annotations.jar
 │   ├── hibernate-commons-annotations.jar
 │   ├── hibernate-entitymanager.jar
 │   ├── hibernate-tools.jar
 │   ├── javassist.jar
 │   ├── jdbc2_0-stdext.jar
 │   └── jta.jar
 ├── struts-2.3.7
     ├── antlr-2.7.2.jar
     ├── asm-3.3.jar
     ├── asm-commons-3.3.jar
     ├── cglib-nodep-2.2.2.jar
     ├── commons-beanutils-1.8.0.jar
     ├── commons-collections-3.1.jar
     ├── commons-digester-2.0.jar
     ├── commons-fileupload-1.2.2.jar
     ├── commons-io-2.0.1.jar
     ├── commons-lang-2.5.jar
     ├── commons-lang3-3.1.jar
     ├── commons-logging-1.1.1.jar
     ├── freemarker-2.3.19.jar
     ├── ognl-3.0.5.jar
     ├── struts2-convention-plugin-2.3.7.jar
     ├── struts2-core-2.3.7.jar
     ├── struts2-fullhibernatecore-plugin-2.2.2-GA.jar
     ├── struts2-json-plugin-2.3.7.jar
     └── xwork-core-2.3.7.jar
于 2012-12-28T12:44:17.180 に答える