ApsectJ 在添加 @Transactional 注释时抛出异常
ApsectJ is throwing exception while adding @Transactional annotation
我们正在使用 AOP,一切正常,我添加了@Transactional。
当我从一种方法转到另一种方法但找不到任何联系时,就会发生这种情况!! !!!!
注释和应用程序未启动并抛出异常:
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 014e b800 2699 0032 2ab4 0053 c700 202a
0000010: bb00 2e59 b200 1412 55b7 0031 b500 53b8
0000020: 0034 2ab4 0053 b900 3a02 0057 2ab4 0053
0000030: 2bb6 0040 a700 0a2b b900 4401 004e 2db0
0000040:
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2570)
at java.lang.Class.getDeclaredFields(Class.java:1903)
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.compiledByAjc(AbstractAspectJAdvisorFactory.java:120)
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.isAspect(AbstractAspectJAdvisorFactory.java:105)
at org.springframework.aop.aspectj.annotation.BeanFactoryAspectJAdvisorsBuilder.buildAspectJAdvisors(BeanFactoryAspectJAdvisorsBuilder.java:103)
at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:87)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:103)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:289)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:958)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:930)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:465)
唯一导致这种情况的原因是当我在其中一种方法的 Class 之上添加 @Transactional 时。我没有任何线索。
如果您需要更多详细信息以解决此问题,请更新我。
编辑:
我正在使用 JDK 1.8_05,Spring 版本是 4.0.3,带有 Instrumentation 代理。
我正在使用 Eclipse Luna Release (4.4.0) 并且 OS 是 windows 8.
奇怪的是,如果我在两种方法之间移动@Transactional 批注。其中一种有效,而另一种只会使应用程序在启动时崩溃。
谢谢
经过长时间搜索...我找到了解决方案..虽然看起来很奇怪,但我尝试更新 spring 版本并解决了问题.. Spring 版本更新自4.0.3 到 4.1.4
感谢那些试图帮助我的人:)
我们正在使用 AOP,一切正常,我添加了@Transactional。
当我从一种方法转到另一种方法但找不到任何联系时,就会发生这种情况!! !!!! 注释和应用程序未启动并抛出异常:
Reason:
Expected stackmap frame at this location.
Bytecode:
0000000: 014e b800 2699 0032 2ab4 0053 c700 202a
0000010: bb00 2e59 b200 1412 55b7 0031 b500 53b8
0000020: 0034 2ab4 0053 b900 3a02 0057 2ab4 0053
0000030: 2bb6 0040 a700 0a2b b900 4401 004e 2db0
0000040:
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2570)
at java.lang.Class.getDeclaredFields(Class.java:1903)
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.compiledByAjc(AbstractAspectJAdvisorFactory.java:120)
at org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactory.isAspect(AbstractAspectJAdvisorFactory.java:105)
at org.springframework.aop.aspectj.annotation.BeanFactoryAspectJAdvisorsBuilder.buildAspectJAdvisors(BeanFactoryAspectJAdvisorsBuilder.java:103)
at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:87)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:103)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:289)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:958)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:930)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:465)
唯一导致这种情况的原因是当我在其中一种方法的 Class 之上添加 @Transactional 时。我没有任何线索。 如果您需要更多详细信息以解决此问题,请更新我。
编辑:
我正在使用 JDK 1.8_05,Spring 版本是 4.0.3,带有 Instrumentation 代理。 我正在使用 Eclipse Luna Release (4.4.0) 并且 OS 是 windows 8.
奇怪的是,如果我在两种方法之间移动@Transactional 批注。其中一种有效,而另一种只会使应用程序在启动时崩溃。
谢谢
经过长时间搜索...我找到了解决方案..虽然看起来很奇怪,但我尝试更新 spring 版本并解决了问题.. Spring 版本更新自4.0.3 到 4.1.4
感谢那些试图帮助我的人:)