尝试运行我的应用程序之一时,出现以下错误:
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
最佳答案
简短:不要部署具有冲突的AspectJWeaver 1.8依赖关系的AspectJ 6.0。
我怀疑这对任何人都不会有太大帮助,因为这个问题非常小众。我的本地部署有AspectJ 6.0 jar,它随附了一个较早版本的AspectJWeaver jar。应用程序的运行命令从/ myApp / lib / *设置类路径。
为了找出我所做的所有依赖关系:sudo ps -ef | grep -i myApp
跟lsof -p <pid> > ~/tmp
。我之所以能够使用它,是因为当应用程序出现故障时,该过程仍然开始。我在类路径中注意到了AspectJWeaver的较旧版本,最终从我的本地classpath文件夹中删除了AspectJ 6.0 jar。