1

私のアプリケーションには、Java6 でコンパイルされたサードパーティの jar (com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar) が含まれています。Java5 を実行する Tomcat 5.5 で使用できましたが、同じアプリケーションを JBoss 5.1 にデプロイしようとすると、次のエラーが表示されます。

[org.jboss.detailed.classloader.ClassLoaderManager] (メイン) ロード中の予期しないエラー:testdata.SomeAnnotation java.lang.UnsupportedClassVersionError: .class ファイルのバージョン番号が正しくありません

それは私だけではないことに気づきました。ここで説明されているように

私の質問:
1) Tomcat などの Web サーバーでこの jar を使用できるのに、それでも Jboss 5.1 が問題になるのはなぜですか?
2) Jboss クラス ローダーは、フレームワークのロードに使用するアプリケーションの Jweaver の実装をロードし、Jboss のspectJ 実装を使用しないのはなぜですか。おそらく、クラスのロードを親優先になるように構成する必要があります。これでこの問題は解決しますか?

4

2 に答える 2

2

Javaは下位互換性がありますが(Java 5.0jarはJava6で実行できます)、前方互換性はありません(Java 6jarはJava5.0では使用できません)。

Java 5.0用にコンパイルされたサードパーティのJarのコピーを入手するか、Javaのバージョンをバージョン6以降にアップグレードする必要があります。

于 2011-02-07T14:40:47.737 に答える
0

学生のHSGが使用する jdk を変更し、その目的のために環境を再構成しても、この例外が引き続き発生する場合があります。これは、特に jdk1.6 から jdk1.5 に切り替えた場合に、かなりの混乱を引き起こす可能性があります。ほとんどの場合、原因は jboss の 1 つまたは複数の他のバージョンが実行されていて、すべての着信要求がそれらのいずれか (新しい jar を使用) を呼び出していることです。どのアプリが実行されているかを常に確認し、jboss の他のすべてのバージョンを強制終了/シャットダウンします。

于 2013-09-30T12:08:37.690 に答える