其他分享
首页 > 其他分享> > 如何在Tomcat中使用Hibernate支持的JPA运行Spring 3.0 PetClinic

如何在Tomcat中使用Hibernate支持的JPA运行Spring 3.0 PetClinic

作者:互联网

好吧,这可能应该是世界上最简单的事情,但我一整天都在努力,但它仍然无法工作..任何帮助都非常感谢!

编辑:有关正确的程序,请参阅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并将jpaVendorAdaptor设置为Hibernate.
>编辑了webapps / WEB-INF / web.xml,并将context-param从applicationContext-jdbc.xml更改为applicationContext-jpa.xml
>将Spring 3.0.1发行版中的所有内容复制到TOMCAT_HOME / lib.
>推出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中.
>同样的错误.将该行添加到TOMCAT_HOME / context.xml
>部署没有错误.但是,当我做某事时会发出错误说

java.lang.NoClassDefFoundError:org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39)中的javax / transaction / SystemException

11.根据scaffman的建议,将javax.transaction的范围从测试更改为默认(刚删除的测试).

12.Run很好!!谢谢!

解决方法:

好的,这就是我做的:

>获取Tomcat 6.0.26
>查看petclinic样本:

svn co https://src.springframework.org/svn/spring-samples/petclinic/trunk/ petclinic

> cd进入petclinic目录
>修改src / main / webapp / WEB-INF / spring / applicationContext-jpa.xml以使用Hibernate:

>评论< context:load-time-weaver> (load-time weaver SHOULD NOT be used with Hibernate,这是Toplink)
>将Hibernate声明为jpaVendorAdapter(注释Toplink部分,取消注释Hibernate部分)

>修改src / main / webapp / WEB-INF / web.xml以使用applicationContext-jpa.xml
>修改pom.xml以在战争中捆绑jta.jar(由@skaffman指出):

<dependency>
  <groupId>javax.transaction</groupId>
  <artifactId>com.springsource.javax.transaction</artifactId>
  <version>1.1.0</version>
  <!--scope>test</scope-->
</dependency>

>建立战争

mvn install

>将其部署到Tomcat

cp target/petclinic.war $TOMCAT_HOME/webapps

>浏览

http://localhost:8080/petclinic

标签:java,spring,jpa,hibernate,tomcat6
来源: https://codeday.me/bug/20190927/1823911.html