【问题标题】:Error creating bean with name 'projectingArgumentResolverBeanPostProcessor': @annotation pointcut expression is only supported at Java 5创建名称为“projectingArgumentResolverBeanPostProcessor”的 bean 时出错:仅 Java 5 支持 @annotation 切入点表达式
【发布时间】:2019-09-17 05:55:31
【问题描述】:

我得到:

在类路径资源 [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class] 中定义名称为“projectingArgumentResolverBeanPostProcessor”的 bean 创建错误:bean 初始化失败;嵌套异常是 java.lang.IllegalArgumentException: 错误 @annotation 切入点表达式仅在 Java 5 合规级别或更高版本中受支持 在 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 合规级别或更高版本中受支持

类似的问题已经存在Error creating bean with name 'projectingArgumentResolverBeanPostProcessor' 但没有解决办法。

这里是详细的错误:

org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class] 中定义名称为“projectingArgumentResolverBeanPostProcessor”的 bean 创建错误:bean 初始化失败;嵌套异常是 java.lang.IllegalArgumentException: 错误 @annotation 切入点表达式仅在 Java 5 合规级别或更高版本中受支持
在 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]
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 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]
在 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] 原因:java.lang.IllegalArgumentException:错误 @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]
在 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]
在 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]
在 org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:352) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在 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]
在 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>

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

【问题讨论】:

    标签: spring maven spring-boot perf4j


    【解决方案1】:
    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-08-28
      • 1970-01-01
      • 2017-06-05
      • 2017-02-26
      • 2015-02-23
      • 1970-01-01
      • 2022-07-21
      • 2020-02-07
      • 2018-12-17
      相关资源
      最近更新 更多