我们将 aspectj (1.8.5) 与 Java (1.7) 和 Spring (3.2.3) 一起使用。我们使用加载时间编织。偶尔我们会看到这些错误是我们的应用程序启动时的日志。有时应用程序启动失败(由于错误),有时应用程序启动正确。
错误:
ERROR TaskUtils.java:95 - 计划任务中发生意外错误。 java.lang.NoClassDefFoundError: org/aspectj/runtime/reflect/JoinPointImpl at org.aspectj.runtime.reflect.Factory.makeJP(Factory.java:164) ~[aspectjweaver-1.8.5.jar:1.8.5]
这会在大约半分钟内发生多次,然后应用程序是否成功克服了这个问题。
也许我们在 Spring 上运行的事实可能会引起一些干扰?
应用程序上下文.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>
有人可以对此有所了解吗?
谢谢你。