Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException:org.aspectj.util.PartialOrder$PartialComparable_Java_Spring_Aspectj_Spring Aop - Fatal编程技术网

java.lang.ClassNotFoundException:org.aspectj.util.PartialOrder$PartialComparable

java.lang.ClassNotFoundException:org.aspectj.util.PartialOrder$PartialComparable,java,spring,aspectj,spring-aop,Java,Spring,Aspectj,Spring Aop,我在我的web应用程序中使用Spring4.2.4.RELEASE,我想从中删除对aspectjweaver.jar的依赖。我不直接使用AOP,当然也不使用AspectJ。但我的应用程序失败,出现以下异常: java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at

我在我的web应用程序中使用Spring4.2.4.RELEASE,我想从中删除对aspectjweaver.jar的依赖。我不直接使用AOP,当然也不使用AspectJ。但我的应用程序失败,出现以下异常:

java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:450)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:510)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:441)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.sortAdvisors(AspectJAwareAdvisorAutoProxyCreator.java:73)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:91)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:346)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:298)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:422)

是否有任何方法可以完全删除对aspectjweaver.jar的依赖关系?

我在Spring Boot中对使用
@Component
注释的类使用
@Transactional
注释时遇到了这个问题,类似于:

最简单的修复方法是添加适当的Maven依赖项:

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

org.aspectj
aspectjweaver
1.8.9
有没有办法完全消除对的依赖 aspectjweaver.jar


不,你不能。您正在使用Spring AOP。Spring项目
springaop
确实对
aspectjweaver.jar
有严格的依赖关系。阅读Spring aop,它清楚地将其标识为依赖项。

答案是否定的。Spring aop在语法上是AspectJ子集,因此它使用AspectJ类解析切入点。它还公开了AspectJ类,如
JoinPoint
ProceedingJoinPoint
,以及AspectJ注释,如
@Poinctut
@Before
@Abround
@DeclareParents
等。添加spring boot starter aop依赖项可以解决这个问题,如果您在springboot应用程序中面对它

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

org.springframework.boot
弹簧启动机aop

您正在使用maven吗?没有足够的信息,您可以显示app config和pom.xml吗?“您至少需要以下库来使用Spring框架对AspectJ LTW的支持”。我不想使用Spring对AspectJ LTW的支持。再说一遍,你为什么需要这个图书馆?为什么存在等级依赖?@Nikem,在你的问题中,你已经标记了
spring aop
。您是否使用
spring aop
?如果不需要,就不需要aspectjweaver.jar。你读过我的问题了吗?若我删除了
aspectjweaver.jar
,那个么应用程序就会因上述原因崩溃exception@Nikem,一个人如何回答一个问题而不先阅读?再次阅读我之前的评论。我想你还没有理解我想表达的观点。我想说的是,您使用的是SpringAOP,它对AspectWeaver有很强的依赖性。如果想摆脱aspect weaver,首先需要摆脱Spring AOP。例如,如果您只是简单地使用基本Spring(Spring上下文),则不需要AOP或aspect weaver,因此不会出现异常。但是为什么
Spring AOP
模块不依赖于
aspectjweaver
?但它确实依赖于此。请看,它将aspectjweaver列为compile dependency.org.aspectj»aspectjweaver(可选)。它声称是可选的,但事实并非如此。没有它,应用程序就会失败,这不是我的错。可能是复制粘贴错误,它也被列为spring core的可选选项。也许你想打开一张罚单并修复它。当我一起使用这些捐款时,我也遇到了这个问题,但在我对我的应用程序进行一些更改之前,我没有遇到这个错误,但现在我遇到了。你知道是什么原因导致的吗?因为我甚至没有更改与这个类相关的代码,如果它在没有明确要求依赖性的情况下工作,我想这样做