添加@Transactional注释时,ApsectJ会抛出异常

时间:2015-02-10 08:37:21

标签: java spring aop aspectj spring-transactions

我们正在使用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)

唯一导致这种情况的是当我将@Transactional添加到其中一种方法之上的类之上时......我没有任何线索。 如果您需要更多详细信息,请更新我以解决此问题。

编辑:

我使用的是JDK 1.8_05,Spring版本是4.0.3,带有Instrumentation代理。 我正在使用Eclipse Luna Release(4.4.0),OS是Windows 8。

奇怪的是,如果我在两个方法之间移动@Transactional注释..其中一个工作,另一个只是让应用程序在启动时崩溃..

由于

1 个答案:

答案 0 :(得分:1)

经过长时间的搜索......我找到了解决方案..虽然看起来很奇怪,但我尝试更新spring版本并解决了问题.Spring版本从4.0.3更新到4.1.4

感谢那些试图帮助我的人:)