0

我正进入(状态:

在类路径资源 [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class] 中定义名称为“projectingArgumentResolverBeanPostProcessor”的 bean 创建错误:bean 初始化失败;嵌套异常是 java.lang.IllegalArgumentException: 错误 @annotation 切入点表达式仅在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) ~[spring- beans-5.0.9.RELEASE.jar:5.0.9.RELEASE] 尝试在基本 spring-boot 应用程序中添加 per4j 时出错

所以我一直在尝试将 perf4j 日志添加到我的 Spring Boot 应用程序中。在这里,我在 Maven 中设置了 java 8。

    <properties>
        <java.version>1.8</java.version>
    </properties>

在我的本地,我也只安装了 Java 8。当我在为 perf4j 添加更改后运行应用程序时,它会引发上述错误。当我深入了解错误时,我可以看到:

原因:java.lang.IllegalArgumentException:错误 @annotation 切入点表达式仅在 Java 5 合规级别或更高版本中受支持

类似的问题已经存在创建名为“projectingArgumentResolverBeanPostProcessor”的 bean 但没有解决方案时出错。

这是详细的错误:

org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class]中定义名称为“projectingArgumentResolverBeanPostProcessor”的bean创建错误:bean初始化失败;嵌套异常是 java.lang.IllegalArgumentException: 错误 @annotation 切入点表达式仅
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) ~[spring- beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) ~[spring-beans-5.0.9.RELEASE.jar :5.0.9.RELEASE]
在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.beans .factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:315)~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)~[spring -beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:236) ~[spring-context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.context.support.AbstractApplicationContext。 registerBeanPostProcessors(AbstractApplicationContext.java:710)~[spring-context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535)~[spring -context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.5. RELEASE.jar:2.0.5.RELEASE]
在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java :412) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
在 org.springframework.boot.SpringApplication.run(SpringApplication.java:333) [spring-boot-2.0.5.RELEASE. jar:2.0.5.RELEASE]
在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1277) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
在 org.springframework.boot .SpringApplication.run(SpringApplication.java:1265) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
在 com.calamp.connect.ae.Application.main(Application.java:29) [classes/:na] Caused by: java.lang.IllegalArgumentException: error @annotation 切入点表达式仅在 Java 5 合规级别或更高版本中受支持
在 org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:317) ~[aspectjtools-1.6.2.jar:na]
在 org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:227) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.obtainPointcutExpression(AspectJExpressionPointcut.java:198) ~[spring-aop-5.0.9.RELEASE .jar:5.0.9.RELEASE]
在 org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:177) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE] 在 org.springframework.aop.support.AopUtils。 canApply(AopUtils.java:225) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:288) ~[spring -aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:320) ~[spring-aop-5.0.9.RELEASE.jar: 5.0.9.RELEASE]
在 org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:126) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:95) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.aop.framework。 autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:76) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java :352) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:304) ~[spring-aop- 5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 org.springframework.beans.factory。 support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1703) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java :573) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
...省略了15个常用框架

我添加了以下依赖项以在 pom.xml 中添加 perf4j 日志记录,如果这可以为​​任何人提供任何线索:

<dependency>
    <groupId>org.perf4j</groupId>
    <artifactId>perf4j</artifactId>
    <version>0.9.16</version>
</dependency>

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjtools -->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.6.2</version>
</dependency>

<dependency>
   <groupId>commons-jexl</groupId>
   <artifactId>commons-jexl</artifactId>
   <version>1.1</version>
</dependency>

错误不应该出现,应用程序应该运行。

4

1 回答 1

0
https://coderwall.com/p/8tbjdg/aspectj-complaining-about-java-5-compliance-level

The above link is a gem. 
It was a version issue, I upgraded the version of aspect to

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.9.2</version>
</dependency>

And it worked. 
于 2019-04-28T10:31:52.350 回答