错误 @annotation 切入点表达式仅在 Java 5 合规级别或更高版本中受支持
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/31427112/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Error the @annotation pointcut expression is only supported at Java 5 compliance level or above
提问by JTN
I am facing the same issue described in Error when using AspectJ AOP with Java 7
在Java 7 中使用 AspectJ AOP 时,我遇到了在错误中描述的相同问题
But provided solutions are not helping out.
但提供的解决方案无济于事。
- I have upgraded spring-aspectjweaver & aspectjrt to 1.7.2
- Increases the version of org.springframework.aspects to 3.2.1
- Java 7
- Tomact 6
- 我已将 spring-aspectjweaver 和 aspectjrt 升级到 1.7.2
- 将 org.springframework.aspects 的版本增加到 3.2.1
- 爪哇 7
- 托马特 6
I am using build.gradle to load it.
我正在使用 build.gradle 加载它。
Added Dependencies:
添加的依赖项:
compile(group: 'org.aspectj', name: 'aspectjrt', version: '1.7.2')
compile(group: 'org.aspectj', name: 'aspectjweaver', version: '1.7.2')
compile(group: 'org.springframework', name: 'spring-aspects', version: '3.2.1.RELEASE')
compile(group: 'org.springframework', name: 'spring-aop', version: '3.2.1.RELEASE')
compile(group: 'org.springframework', name: 'spring-context', version: '3.2.1.RELEASE')
compile(group: 'org.springframework', name: 'spring-beans', version: '3.2.1.RELEASE')
compile(group: 'org.springframework', name: 'spring-core', version: '3.2.1.RELEASE')
compile(group: 'org.springframework', name: 'spring-expression', version: '3.2.1.RELEASE')
Error stacktrace
错误堆栈跟踪
org.springframework.beans.factory.BeanCreationException: **Error creating bean with name 'transfersComponent' defined in URL [jar:file:/C:/.some path to jar ./com/barclays/internet/aggregate/component/TransfersComponent.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.config.internalTransactionAdvisor': Cannot resolve reference to bean** 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0' while setting bean property 'transactionAttributeSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.googlecode.ehcache.annotations.config.internalEhCacheCachingAdvisor': Cannot resolve reference to bean 'com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#0' while setting bean property 'pointcut'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.googlecode.ehcache.annotations.impl.CacheStaticMethodMatcherPointcut#0': Cannot resolve reference to bean 'com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0' while setting bean property 'cacheAttributeSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.googlecode.ehcache.annotations.impl.CacheAttributeSourceImpl#0': Cannot resolve reference to bean 'ehCacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheManager' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error the @annotation pointcut expression is only supported at Java 5 compliance level or above
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:452)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1429)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:631)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:568)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:295)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at javax.management.remote.rmi.RMIConnectionImpl.access0(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport.run(Transport.java:202)
at sun.rmi.transport.Transport.run(Transport.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access0(TCPTransport.java:619)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:684)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Jul 16, 2015 9:50:43 AM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
采纳答案by JTN
Problem is solved, actually the project I am running consists of 3 modules. In two modules I was upgrading the jar version to 1.7.2, as only these two modules were using it.
问题解决了,实际上我正在运行的项目由3个模块组成。在两个模块中,我将 jar 版本升级到 1.7.2,因为只有这两个模块在使用它。
But the third module also had the dependency, which was downloading the older version of spring-aspectweaver 1.5.3 and even after making changes in other two modules they were picking the old jar from module 1's dependency.
但是第三个模块也有依赖项,它正在下载旧版本的 spring-aspectweaver 1.5.3,即使在其他两个模块中进行了更改之后,他们还是从模块 1 的依赖项中选择了旧的 jar。
Removing the jar old dependency from the module and hard deleting the old jar helped.
从模块中删除 jar 旧依赖项并硬删除旧 jar 有帮助。
回答by Kusum
I had the similar issue. the below link helped:
我有类似的问题。以下链接有帮助:
https://coderwall.com/p/8tbjdg/aspectj-complaining-about-java-5-compliance-level
https://coderwall.com/p/8tbjdg/aspectj-complaining-about-java-5-compliance-level
I had to update the aspectj version and it worked.
我不得不更新 aspectj 版本并且它起作用了。
回答by Hodeifa Baswel
I used to have similar problem, I got this message when deploying to glassfish server:
我曾经有过类似的问题,在部署到 glassfish 服务器时收到此消息:
error the @within pointcut expression is only supported at Java 5 compliance level or above.
错误 @within 切入点表达式仅在 Java 5 合规性级别或更高版本中受支持。
It turn out due to one of my dependency was outdated. check your suspected dependency version. It is easier to spot if You have earlier working version and check only the additional dependency.
原来是因为我的一个依赖已经过时了。检查您怀疑的依赖版本。如果您有较早的工作版本并仅检查附加依赖项,则更容易发现。
回答by Sandeep
If it is Eclipse, open the project properties>Java Compiler. Set the Compiler Compliance Level to 1.7. For other IDE's, just google how to change the compiler compliance level.
如果是Eclipse,打开项目属性>Java Compiler。将编译器合规级别设置为 1.7。对于其他 IDE,只需 google 如何更改编译器合规性级别。