AspectJ dep not loaded for @Timed annotation

234 Views Asked by At

I have exactly same symptoms like this question and I followed its accepted answer without luck.

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
    <relativePath/>
</parent>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
    </dependency>

Application.java

@Bean
public TimedAspect timedAspect(MeterRegistry registry) {
    return new TimedAspect(registry);
}

Exception:

Caused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: org/aspectj/lang/ProceedingJoinPoint
    at io.micrometer.core.aop.TimedAspect.<init>(TimedAspect.java:73)
    at com..mcs.Application.timedAspect(Application.java:29)
    at com..mcs.Application$$EnhancerBySpringCGLIB$$b6a83328.CGLIB$timedAspect$1(<generated>)
    at com..mcs.Application$$EnhancerBySpringCGLIB$$b6a83328$$FastClassBySpringCGLIB$$be4485cd.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
    at com..mcs.Application$$EnhancerBySpringCGLIB$$b6a83328.timedAspect(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 21 more
Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/ProceedingJoinPoint
    ... 33 more
Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.ProceedingJoinPoint
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

Dependencies:

[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.0:compile
[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.0:compile
[INFO] |  |  \- org.springframework.boot:spring-boot-actuator:jar:2.4.0:compile
[INFO] |  \- io.micrometer:micrometer-core:jar:1.6.1:compile
[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- org.springframework:spring-aspects:jar:5.3.1:compile
[INFO] |  \- org.aspectj:aspectjweaver:jar:1.9.6:compile

It does not make sense to me. The jar aspectjweaver-1.9.6.jar contains org\aspectj\lang\ProceedingJoinPoint.class. The class should be loaded.

Similar questions: ClassNotFoundException - org.aspectj.lang.annotation.Around

Update:

The problem was in Intellij IDEA that was not in sync with pom dependencies. A reload in Maven tab helped.

0

There are 0 best solutions below