org / aspectj / runtime / reflect / JoinPointImpl的偶发NoClassDefFoundError

时间:2015-08-09 14:18:22

标签: java spring aspectj load-time-weaving

我们正在使用带有Java(1.7)和Spring(3.2.3)的aspectj(1.8.5)。 我们使用加载时间编织。 偶尔我们会看到这些错误是应用程序启动时的日志。有时启动应用程序失败(由于错误),有时应用程序正确启动。

错误:

错误TaskUtils.java:95 - 计划任务中发生意外错误。 java.lang.NoClassDefFoundError:org / aspectj / runtime / reflect / JoinPointImpl     在org.aspectj.runtime.reflect.Factory.makeJP(Factory.java:164)〜[aspectjweaver-1.8.5.jar:1.8.5]

这种情况多次发生约半分钟,然后应用程序成功克服了这个问题。

也许我们在Spring上运行的事实可能会引起一些干扰?

applicationContext.xml:

<context:load-time-weaver aspectj-weaving="on"/>

Tomcat的context.xml:

<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>

在我们的pom.xml中,我们有这些依赖项(与aspectJ和spring aop相关):

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${springframework.version}</version>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-instrument-tomcat</artifactId>
    <version>${springframework.version}</version>
    <scope>runtime</scope>
  </dependency>

  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${springframework.version}</version>
  </dependency>

  <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.5</version>
  </dependency>

有人可以对此有所了解吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试添加以下依赖项:

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.8.6</version>
</dependency>