web-dev-qa-db-ja.com

Java 7でAspectJ AOPを使用する場合のエラー

Javaをバージョン「1.7.0_09-icedtea」に更新しました(以前は1.6でした)と、次のメッセージが表示されます。

Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate be
an class [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor threw exception; nested exception is Java.lang.IllegalArgumentException: error the 
@annotation pointcut expression is only supported at Java 5 compliance level or above

アプリケーションはJava 1.6でコンパイルされており、コンパイラのコンプライアンスレベルも1.6に設定されています。私はSpring 3.1.0を使用しています。

誰かがJava 7の下でアスペクトjを動作させることができましたか?

23
Mikhail.Mamaev

AspectJ 1.5.4はJava7で動作するようには設計されていません。 AspectJのバージョンを1.7.0以降にアップグレードしてみてください(執筆時点で最新は1.7.2)。

(私も AspectJ/Java7の問題 以前にもありました)

34
Jay

このエラーが発生した場合。 jdk 1.6でプログラムをコンパイルし、jre 6で実行するだけです。問題が解決します

1
deepesh17feb