Как использовать JPA в весенней петклинике? - PullRequest
4 голосов
/ 15 августа 2010

Я учу весенние образцы. В проекте petclinic по умолчанию используется jdbc. Я изменил следующую строку на jpa и больше не могу ее запустить

/WEB-INF/spring/applicationContext-jpa.xml

Вот сообщение об ошибке:

Caused by: java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:spring-agent.jar
    at org.springframework.context.weaving.DefaultContextLoadTimeWeaver.setBeanClassLoader(DefaultContextLoadTimeWeaver.java:83)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1418)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1389)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
    ... 35 more

Любой ответ был бы очень полезен.

1 Ответ

7 голосов
/ 15 августа 2010

Загрузчик классов Tomcat по умолчанию не поддерживает преобразование классов, необходимое для ткачества времени загрузки. Вам нужно использовать тот, который предоставляется Spring.

Сначала скопируйте org.springframework.instrument-3.0.0.RELEASE.jar в папку lib вашей установки tomcat

Затем измените src/main/webapp/META-INF/context.xml и раскомментируйте следующую строку:

<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>

Или вы можете избавиться от LTW и использовать Hibernate в качестве поставщика JPA. Смотрите соответствующий вопрос ниже.

Смотри также

Смежный вопрос

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...