Spring AOP使用Java 8提供IllegalArgumentException

使用Java 8和Spring AOP 4.0.6我收到以下错误

java.lang.RuntimeException: Error scanning file MonitorAroundPerformance.class at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:705) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:821) at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159) at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:531) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:970) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:700) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:686) at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:821) at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159) at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:531) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536) at java.lang.Thread.run(Thread.java:745) 

但是,当我将Java Source和target更改为1.7时,此错误就会消失。 POM.xml设置 –

    org.springframework spring-framework-bom 4.0.6.RELEASE pom import    

Eclipse Kepler中的构建路径中的jar – spring-aop-4.0.6,aspectjrt-1.8.2.jar,aopalliance-1.0.jar,jetty-maven-plugin:9.1.1.v20140108

配置:

        

Jetty 9.2.0是Jetty的第一个版本,支持JDK8的注释和类扫描 。

我们使用的asm库有一个更新,以及一些api更改,以支持新的JDK8字节码扫描。

你想要升级。

如果只是升级到asm 5. *对你不起作用,也要从jetty中排除所有asm jar。 这个配置对我有用:

   org.eclipse.jetty jetty-maven-plugin 9.4.6.v20170531   .*/^(asm-all-repackaged)[^/]*\.jar$     org.ow2.asm asm 5.2   org.ow2.asm asm-commons 5.2    

我有与GWT 2.8 web项目(eclipse插件,JAVA 8)类似的问题。

我的简单解决方案是在新的eclipse工作区中创建GWT Web项目。