@Annotation支持Java 5合规级别或更高级别

时间:2016-03-22 18:20:48

标签: java spring

当我尝试运行我的某个应用程序时,我收到以下错误:

error the @annotation pointcut expression is only supported at Java 5 compliance level or above

该应用程序使用AspectJ 6.0,AspectJWeaver 1.8和SpringAspects 4.2依赖项。我检查过启动的JVM是JDK 1.8,JAVA_HOME也设置为我的JDK 1.8安装。从类似的问题看,我看到答案是确保将aspectjweaver设置为1.8,并且不要将AspectJ 1.5.4与JDK 1.6以上的任何东西一起使用。我可以检查一些其他设置或配置吗?

更多的堆栈跟踪:

Exiting with throwable: org.springframework.beans.factory.BeanCreationException:   
Error creating bean with name   org.springframework.context.event.internalEventListenerProcessor':  Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error the @annotation pointcut   expression is only supported at Java 5 compliance level or above
org.springframework.beans.factory.BeanCreationException:   
Error creating bean with name 'org.springframework.context.event.internalEventListenerProcessor': Initialization of bean failed;  
nested exception is java.lang.IllegalArgumentException:   
error the @annotation pointcut expression is only supported at Java 5 compliance level or above

3 个答案:

答案 0 :(得分:0)

简短:不要使用有冲突的AspectJWeaver 1.8依赖项部署AspectJ 6.0。

我怀疑这对任何人都非常有帮助,因为这个问题非常小。我的本地部署有AspectJ 6.0 jar,它附带了一个旧版本的AspectJWeaver jar。来自/ myApp / lib / *的应用程序集classpath的run命令。

要找出我所做的所有依赖项:sudo ps -ef | grep -i myApp后跟lsof -p <pid> > ~/tmp。我能够使用它,因为当应用程序出现故障时,该过程仍然开始。我在类路径中注意到了旧版本的aspectJWeaver,最后从我的本地classpath文件夹中删除了AspectJ 6.0 jar。

答案 1 :(得分:0)

检查java主页。确认它小于7。

使用java -version。

例如,在jboss中,验证standalone.bat和standalone.config。

答案 2 :(得分:0)

我有相同的错误消息和堆栈跟踪,但依赖性版本稍有不同。

问题是缺乏对functools.partial()的支持。恢复为Java 9可以解决此问题。