我想做什么:
我做了什么:
什么行不通:
其他信息:
我想知道的事情:
***启动Tomcat 6时出现异常:
Caused by: java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-agent.jar
at org.springframework.context.weaving.DefaultContextLoadTimeWeaver.setBeanClassLoader(DefaultContextLoadTimeWeaver.java:82)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
... 41 more
答案 0 :(得分:1)
您是否已将spring-aspects.jar添加到项目的方面路径中?
在项目属性中,在“AspectJ Build”下 - > 'Aspect Path'尝试添加spring-aspects.jar并清理构建项目。
很抱歉,你可能已经这样做了 - 但你没有提到它。
答案 1 :(得分:0)
看起来编织时编织不起作用。尝试将以下行添加到applicationcontext.xml
<context:load-time-weaver />
<context:spring-configured/>
您可能还想将以下xsd添加到xml文件中
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
详见此处:
http://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-aj-ltw
答案 2 :(得分:0)
您可以在没有AspectJ的情况下使用@Transactional。您的配置文件应包含以下内容以使其正常工作:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd"
>
<tx:annotation-driven/>
告诉spring在创建配置bean的实例时查找@transactional注释。在找到这样的注释时,spring将bean的动态代理返回给应用程序代码。此动态代理确保无论何时调用带注释的方法,spring都能够拦截它以提供预期的事务行为。但是基于代理的AOP要求您对接口而不是具体类进行编码。