好的,这可能是世界上最容易的事情,但是我已经试了整整一天,还是不起作用...非常感谢任何帮助!
编辑:有关正确的程序,请参见Pascal的答案。
我的错误(因为我没有禁用LoadTimeWeaving)程序仅供参考..:
我做了什么:
- 下载Tomcat 6.0.26和Spring 3.0.1
- 从https://src.springframework.org/svn/spring-samples/petclinic下载PetClinic
- 构建和部署petclinic.war。默认使用JDBC持久性运行良好。
- 编辑webapps / WEB-INF / spring / applicationContext-jpa.xml并将设置为Hibernate。
- 编辑webapps / WEB-INF / web.xml,并将从applicationContext-jdbc.xml更改为applicationContext-jpa.xml
- 复制Spring 3.0.1分发中的所有内容到TOMCAT_HOME / lib中。
启动tomcat。看到
Caused by:java.lang.IllegalStateException:ClassLoader [org.apache.catalina.loader.WebappClassLoader]没有提供“addTransformer(ClassFileTransformer)”方法。指定自定义LoadTimeWeaver或使用Spring的代理启动您的Java虚拟机:-javaagent:spring-agent.jar
取消注释webapps / META-INF / context.xml中的一行。
- 相同的错误。将该行添加到TOMCAT_HOME / context.xml中
无错误部署。但是,当我做某事时,它会发出一个错误,说
java.lang.NoClassDefFoundError:javax/transaction/SystemException在org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39)
11.按scaffman建议将javax.transaction的范围从测试更改为默认值(仅删除了测试)。
12.运行正常!谢谢!
lib
目录是否包含任何来自javax.transaction
的内容? - skaffman