OK, esto probablemente se supone que es la cosa más fácil del mundo, pero he estado intentando durante todo el día, y todavía no funciona ... Cualquier ayuda es muy apreciado!Cómo ejecutar Spring 3.0 PetClinic en tomcat con JPA respaldado por Hibernate
EDIT: Para conocer el procedimiento correcto, consulte la respuesta de Pascal.
Mi procedimiento equivocado (ya lo hice LoadTimeWeaving no discapacitados) se deja para referencia ..:
Lo que hice:
- descargados Tomcat 6.0.26 & primavera 3.0.1
- Se descargó PetClinic desde https://src.springframework.org/svn/spring-samples/petclinic
- Construido & desplegado petclinic.war. Funcionó bien con la persistencia JDBC predeterminada.
- Edita webapps/WEB-INF/spring/applicationContext-jpa.xml y establece
jpaVendorAdaptor
para Hibernate. - aplicaciones web editadas/WEB-INF/web.xml y cambiado
context-param
de applicationContext-jdbc.xml a applicationContext-jpa.xml - copiado todo en la distribución de primavera 3.0.1 a TOMCAT_HOME/lib.
Tomcat lanzado. Sierra
Causado por: java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] NO proporciona un método 'addTransformer (ClassFileTransformer)'. Especifique un LoadTimeWeaver personalizado o inicie su máquina virtual Java con el agente de Spring: -javaagent: spring-agent.jar
Línea no confirmada
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
en webapps/META-INF/context.xml.- Mismo error. Se agregó esa línea a TOMCAT_HOME/context.xml
Implementado sin error. Sin embargo, cuando hago algo que emitirá un error diciendo
java.lang.NoClassDefFoundError: javax/transaction/SystemException at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39)
alcance 11.Changed de javax.transaction de prueba por defecto (prueba simplemente suprimido), según lo sugerido por scaffman.
12.Runs multa !! ¡Gracias!
estoy adivinando el problema está en (3). ¿La WAR que se genera contiene algo de 'javax.transaction' en su directorio' lib'? – skaffman
No usaste TopLink en 3, usaste JDBC –
@Pascal: Tienes razón, arreglé la publicación ... –