1

これでお役に立てば幸いです。Spring@Transactionalアノテーションを使用してメソッドをトランザクションとしてマークしていますが、必要な<tx:annotation-driven transaction-manager="txManager"/>. 私のビルドには Spring 2.5.6 と cglib 2.1_3 が含まれています。

(Websphere 7 ランタイムへの) デプロイ時に、Bean 作成の例外が表示されます。根本的な原因は次のとおりです。

Caused by: java.lang.AbstractMethodError: net/sf/cglib/core/ClassGenerator.generateClass(Lnet/sf/cglib/asm/ClassVisitor;)V
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
...and so on

これは、そのメソッドを実装していないgenerateClass(...)のインスタンスでメソッドを呼び出していることを意味していると思います。AbstractClassGeneratorこれらすべてがSpringで透過的に設定されているように見えるので、問題を解決するためにここからどこに行くべきかわかりません...何かアイデアはありますか?

4

2 に答える 2

0

cglib のコピーが複数あると思います。アプリサーバーには独自のコピーがありますか? もしそうなら、アプリケーションにも含めないほうがよいでしょう。

もう 1 つの可能性は、 が欠落しているということですがasm.jar、その場合、エラーは別のことを示している可能性があります。

于 2011-01-31T15:25:37.290 に答える
0

Skaffman が提案したように、cglib の重複コピーがあるかどうかを確認してください。手元に WAS 7 はありませんが、WAS 7 の上に構築された WPS 7 を見て、SCA 機能パックの一部である cglib-nodep-2.1_3.jar という JAR があることに気付きました。 .

マシンに SCA 機能パックがあり、このファイルが存在するかどうかを確認してください。

クラス ローディング トレースをオンにして、このクラスがどの Jar から取得されているかを確認し、それに対して cavaj を実行して、サポートされているメソッドを確認します。

具体的なサブクラスがこの問題を解決しているようだと言うと、私も打ちのめされます!. 前述のように、実行時にこれらのクラスをロードする Jar を最初に見つけてから、何が起こっているのかを把握します。

HTH マングル

于 2011-01-31T22:27:27.003 に答える