Java 如何使用支持Hibernate的JPA在tomcat中运行Spring3.0PetClinic
好吧,这可能是世界上最简单的事情,但我已经试了一整天了,但还是不起作用。。非常感谢您的帮助 编辑:有关正确的步骤,请参阅Pascal的答案。 我的错误(因为我没有禁用LoadTimeWeaving)过程留作参考..: 我所做的:Java 如何使用支持Hibernate的JPA在tomcat中运行Spring3.0PetClinic,java,hibernate,spring,jpa,tomcat6,Java,Hibernate,Spring,Jpa,Tomcat6,好吧,这可能是世界上最简单的事情,但我已经试了一整天了,但还是不起作用。。非常感谢您的帮助 编辑:有关正确的步骤,请参阅Pascal的答案。 我的错误(因为我没有禁用LoadTimeWeaving)过程留作参考..: 我所做的: 下载的Tomcat 6.0.26和Spring 3.0.1 从下载PetClinic 构建和部署petclinic.war。使用默认JDBC持久性运行良好 编辑webapps/WEB-INF/spring/applicationContext-jpa.xml并将jpav
jpavendoradapter
设置为休眠上下文参数
从applicationContext-jdbc.xml更改为applicationContext-jpa.xml
java.lang.NoClassDefFoundError:org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager上的javax/transaction/SystemException(EntityManagerFactoryImpl.java:39)
11.根据斯加夫曼的建议,将javax.transaction的范围从测试更改为默认(只是删除了测试)
12.运行良好!!谢谢大家!看起来PetClinic的包装有问题: 及
这里有一个pom.xml的补丁好的,下面是我所做的:
svn co https://src.springframework.org/svn/spring-samples/petclinic/trunk/ petclinic
cd
进入petclinic目录src/main/webapp/WEB-INF/spring/applicationContext jpa.xml
以使用Hibernate:
- 注释
(,这是用于Toplink) - 将Hibernate声明为
(注释Toplink部分,取消注释Hibernate部分)jpaVendorAdapter
src/main/webapp/WEB-INF/WEB.xml
以使用applicationContext jpa.xml
pom.xml
以绑定jta.jar(正如@skaffman所指出的):
cp target/petclinic.war $TOMCAT_HOME/webapps
http://localhost:8080/petclinic
我猜问题出在(3)。构建的WAR是否在其
lib
目录中包含来自javax.transaction
的任何内容JDBC@Pascal:没错,我修复了帖子。@skaffman:我检查了pom.xml和javax.transaction是否在测试范围内。。我会试着把它包括进去。谢谢谢谢我想知道为什么手册上说“Hibernate不需要LTW”。这对我帮助很大!
cp target/petclinic.war $TOMCAT_HOME/webapps
http://localhost:8080/petclinic