【问题标题】:AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higherAnnotationAwareAspectJAutoProxyCreator 仅适用于 Java 1.5 及更高版本
【发布时间】:2015-11-24 10:54:29
【问题描述】:

我有一个在 Eclipse 上运行的项目,但是当我制作 "java -jar" 时出现以下错误:

 Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [Beans.xml]; nested
 java.lang.IllegalStateException: AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higher
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
        at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
        at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
        at pt.myCompany.myProduct.integrator.Integrator.init(Integrator.java:27)
        at pt.myCompany.myProduct.integrator.jobs.RequstSentToProvider.execute(RequstSentToProvider.java:24)
        at pt.myCompany.integrador.jobSchedule.RunRequstSentToProvider.main(RunRequstSentToProvider.java:10)
Caused by: java.lang.IllegalStateException: AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higher
        at org.springframework.aop.config.AopConfigUtils.getAspectJAnnotationAutoProxyCreatorClassIfPossible(AopConfigUtils.java:134)
        at org.springframework.aop.config.AopConfigUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(AopConfigUtils.java:99)
        at org.springframework.aop.config.AopNamespaceUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(AopNamespaceUtils.java:71)
        at org.springframework.aop.config.AspectJAutoProxyBeanDefinitionParser.parse(AspectJAutoProxyBeanDefinitionParser.java:41)
        at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1297)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1287)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
        ... 16 more

当我制作 "java -version" 时,输出是:

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

我做错了什么?

【问题讨论】:

  • 升级你的 spring 版本或在 eclipse 中使用相同的 JDK。
  • 所使用的 JVM 并没有说明编译后的字节码。可能您的代码或其中的某些部分是使用低于 1.5 的目标版本编译的。这只是一个有根据的猜测,很难,因为我看不到你的代码。您可以使用 JDK 中的 javap 检查它。

标签: java spring aop


【解决方案1】:

@MaggieX 没有错 - 您正在运行旧版本的 Spring,它有一个 if {} 语句,它知道 Java 1.7 但不知道 Java 1.8。如果它不能匹配 1.5、1.6 或 1.7,则假定您正在运行 Java 1.4。

因此,降级到 1.7 是一种解决方法。升级 Spring 版本是一个修复。这里还有其他已回答的问题,有人通过从源代码重建 Spring 2.5 jar 来添加 Java 1.8 支持。参看。 https://stackoverflow.com/a/32487035

【讨论】:

    【解决方案2】:

    我猜你正在使用 Maven。 也许您缺少一些 aspectj 库?

    尝试将此添加到您的pom.xml:

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.7.3</version>    
    </dependency>
    <dependency>
       <groupId>org.aspectj</groupId>
       <artifactId>aspectjweaver</artifactId>
       <version>1.7.3</version>
    </dependency>
    

    【讨论】:

    • 感谢您的帮助,但没有奏效。我找到的唯一解决方案是删除 aop 依赖项并将其从“Beans.xml”中删除
    【解决方案3】:

    也许你可以改变你的jdk版本。我把我的jdk版本改为1.7,然后项目就可以正常运行了

    【讨论】:

    • 这并不能真正回答问题
    【解决方案4】:

    我也遇到了完全相同的错误。我注意到,当我将 JAVA_HOME 系统变量设置为 JDK 1.8 版时,我得到了 Jp Felgueiras 提到的错误,通过切换到 JDK 1.7 版,我的代码可以工作,所以看起来旧版本的 spring 代码存在一些问题,这可能好吧,因为代码是 spring core org.springframework.core.JdkVersion.java,这段代码处理 JDK 版本 1.4(默认)、1.5、1.6 和 1.7。这意味着如果您的 java 版本不是 1.5、1.6 或 1.7,那么它将被视为 1.4,因此您会收到提示用户 java 版本为 1.5 或更高版本的错误。希望这会帮助任何人偶然发现这个问题

    【讨论】:

      【解决方案5】:

      您好,请前往 eclipse 工作区/您的项目/.setting(隐藏文件夹)/edit org.eclipse.wst.common.component java 版本 1.5 到 1.7 或更高版本

      【讨论】:

        猜你喜欢
        • 2017-06-27
        • 2015-02-07
        • 1970-01-01
        • 2014-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-06
        • 2010-11-12
        相关资源
        最近更新 更多