Enn*_*oji 9 java spring hibernate jpa tomcat6
好吧,这可能应该是世界上最简单的事情,但我一整天都在努力,但它仍然无法工作..任何帮助都非常感谢!
编辑:有关正确的程序,请参阅Pascal的答案.
我的错(因为我没有禁用LoadTimeWeaving)程序留待参考..:
我做了什么:
jpaVendorAdaptor为Hibernate.context-param从applicationContext-jdbc.xml 更改为applicationContext-jpa.xml推出了tomcat.锯
引起:java.lang.IllegalStateException:ClassLoader [org.apache.catalina.loader.WebappClassLoader]不提供'addTransformer(ClassFileTransformer)'方法.指定自定义LoadTimeWeaver或使用Spring的代理启动Java虚拟机:-javaagent:spring-agent.jar
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>webapps/META-INF/context.xml中的未注释行.
部署没有错误.但是,当我做某事时会发出错误说
java.lang.NoClassDefFoundError: javax/transaction/SystemException at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39)
11.根据scaffman的建议,将javax.transaction的范围从测试更改为默认(刚删除的测试).
12.Run很好!! 谢谢!
好的,这就是我做的:
查看petclinic样本:
svn co https://src.springframework.org/svn/spring-samples/petclinic/trunk/ petclinic
Run Code Online (Sandbox Code Playgroud)cd 进入petclinic目录
src/main/webapp/WEB-INF/spring/applicationContext-jpa.xml为使用Hibernate:
<context:load-time-weaver>(加载时weaver 不应该与Hibernate一起使用,这是Toplink)jpaVendorAdapter(注释Toplink部分,取消注释Hibernate部分)src/main/webapp/WEB-INF/web.xml使用applicationContext-jpa.xml在战争中修改pom.xmlto bundle jta.jar(由@skaffman指出):
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>com.springsource.javax.transaction</artifactId>
<version>1.1.0</version>
<!--scope>test</scope-->
</dependency>
Run Code Online (Sandbox Code Playgroud)建立战争
mvn install
Run Code Online (Sandbox Code Playgroud)将其部署到Tomcat
cp target/petclinic.war $TOMCAT_HOME/webapps
Run Code Online (Sandbox Code Playgroud)浏览
http://localhost:8080/petclinic
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
13152 次 |
| 最近记录: |