2014-10-10 3 views
3

С Java 8 и Spring AOP 4.0.6 Я получаю следующее сообщение об ошибкеSpring AOP дает IllegalArgumentException с Java 8

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.<init>(Unknown Source) 
    at org.objectweb.asm.ClassReader.<init>(Unknown Source) 
    at org.objectweb.asm.ClassReader.<init>(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 и цель на 1.7, то эта ошибка уходит. настройки pom.xml -

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-framework-bom</artifactId> 
      <version>4.0.6.RELEASE</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

баночки в пути сборки в Eclipse, Кеплер - пружинные АОП-4.0.6, aspectjrt-1.8.2.jar, aopalliance-1.0.jar, молы-Maven-плагин: 9.1 .1.v20140108

Config:

<bean id="performanceAdvice" 
    class="com.util.MonitorAroundPerformance" /> 

<bean id="performanceAdvisor" 
    class="org.springframework.aop.support.RegexpMethodPointcutAdvisor" 
    depends-on="propertyOverrideConfigurer"> 
    <property name="advice" ref="performanceAdvice" /> 
</bean> 


<bean 
    class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> 
    <property name="proxyTargetClass" value="true" /> 
</bean> 

ответ

0

Если только обновление до asm 5. * не работает для вас, исключите все банки asm из причала. Эта конфигурация работала для меня:

 <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.4.6.v20170531</version> 
      <configuration> 
       <webApp> 
        <webInfIncludeJarPattern>.*/^(asm-all-repackaged)[^/]*\.jar$</webInfIncludeJarPattern> 
       </webApp> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.ow2.asm</groupId> 
        <artifactId>asm</artifactId> 
        <version>5.2</version> 
       </dependency> 
       <dependency> 
        <groupId>org.ow2.asm</groupId> 
        <artifactId>asm-commons</artifactId> 
        <version>5.2</version> 
       </dependency> 
      </dependencies> 
     </plugin>