ОК, это, наверное, самая легкая вещь в мире, но я пробовал весь день, и она все еще не работает .. Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: Для правильной процедуры, см. Ответ Паскаля.
Моя неправильная (поскольку я не отключил LoadTimeWeaving) процедура оставлена для справки ..:
Что я сделал:
- Загруженный Tomcat 6.0.26 & Spring 3.0.1
- Скачано PetClinic с https://src.springframework.org/svn/spring-samples/petclinic
- Построен и развернут petclinic.war. Работает нормально с сохранением JDBC по умолчанию.
- Отредактированные веб-приложения / 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.
Запущен кот. Пила
Причина: java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] НЕ предоставляет метод addTransformer (ClassFileTransformer). Укажите пользовательский LoadTimeWeaver или запустите виртуальную машину Java с агентом Spring: -javaagent: spring-agent.jar
Некомментированная строка <Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
в webapps / META-INF / context.xml.
- Та же ошибка. Добавил эту строку в TOMCAT_HOME / context.xml
Развернуто без ошибок. Однако, когда я что-то делаю, выдается сообщение об ошибке
java.lang.NoClassDefFoundError: javax/transaction/SystemException at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39)
11.Измененная область действия javax.transaction от test до default (только что удаленный тест), как предложено scaffman.
12. Работает хорошо !! Спасибо!