• java.lang.ClassNotFoundException: org.aspectj.lang.JoinPoint


    背景:一共三个模块,还未整合,日志模块,登录模块以及业务模块

    登录模块应用日志模块时启动正常,但是业务模块启动时失败(分别起的,未整合),报了如下错误:

    。。。

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logAspect': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [cn.com.rivercloud.log.aspect.LogAspect] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

    2020-01-14 15:24:22.881 INFO 31384 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
    2020-01-14 15:24:22.904 INFO 31384 --- [ main] ConditionEvaluationReportLoggingListener :

    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    2020-01-14 15:24:22.933 ERROR 31384 --- [ main] o.s.boot.SpringApplication : Application run failed

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logAspect': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [cn.com.rivercloud.log.aspect.LogAspect] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:287) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1286) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1201) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
    at cn.com.rivercloud.SystemApplication.main(SystemApplication.java:12) [classes/:na]
    Caused by: java.lang.IllegalStateException: Failed to introspect Class [cn.com.rivercloud.log.aspect.LogAspect] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:477) ~[spring-core-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:318) ~[spring-core-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:265) ~[spring-beans-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    ... 18 common frames omitted
    Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint
    at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_211]
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_211]
    at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_211]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:459) ~[spring-core-5.2.1.RELEASE.jar:5.2.1.RELEASE]
    ... 20 common frames omitted
    Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.JoinPoint
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_211]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_211]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_211]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_211]
    ... 24 common frames omitted

    然后把业务模块中pom.xml中的build注释掉,同时增加了网上说的依赖(具体是啥已经乱了,加了好几个,其中删除,增加啥的)

    然后再次运行上面这个错误没有了,但是出现一个Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.ProceedingJoinPoint

    感觉这两个属于同一类的,所以就把log模块有关aop的依赖都放到了业务模块,就好使了:

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

    但是我没有想明白的是:

    1、为啥登录模块没有引入也可以?

    2、业务模块是调用,依赖在log模块存在,为什么要在业务模块同时存在?

  • 相关阅读:
    不同包中继承关系访问protected内部类问题
    LinuxMM--MemoryHierarchy
    LinuxMM--Memory Pressure
    多态实验:基类——子类成员
    使用vue开发的word-cloud 词云组件
    基于mui.PopPicker的可多选下拉多选的底部弹出组件
    基于mui.popover的自定义底部弹出框-支持多选和搜索筛选的弹出列表组件改造以及mui.prompt添加自定义内容
    js去空 去除空格
    css+js控制文字显示行数,多出部分显示省略号
    使用vue开发自定义tabs标签页组件
  • 原文地址:https://www.cnblogs.com/notchangeworld/p/12192765.html
Copyright © 2020-2023  润新知