JPA 2 под Geronimo с Tomcat - PullRequest
       8

JPA 2 под Geronimo с Tomcat

0 голосов
/ 03 марта 2012

Приложение Spring MVC интегрировано с Hibernate. Все было в порядке, пока я не использовал аннотацию @OneToMany ... Я получаю следующую ошибку:

Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 81 more

Вот мое содержание WEB-INF / lib:

aopalliance-1.0.jar
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
h2-1.3.164.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.9.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
javassist-3.12.1.GA.jar
log4j-1.2.16.jar
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
spring-aop-3.1.1.RELEASE.jar
spring-asm-3.1.1.RELEASE.jar
spring-beans-3.1.1.RELEASE.jar
spring-context-3.1.1.RELEASE.jar
spring-core-3.1.1.RELEASE.jar
spring-expression-3.1.1.RELEASE.jar
spring-hibernate3-2.0.8.jar
spring-jdbc-3.1.1.RELEASE.jar
spring-orm-3.1.1.RELEASE.jar
spring-tx-3.1.1.RELEASE.jar
spring-web-3.1.1.RELEASE.jar
spring-webmvc-3.1.1.RELEASE.jar
spring-webmvc-3.1.1.RELEASE-sources.jar
tiles-api-2.2.2.jar
tiles-core-2.2.2.jar
tiles-jsp-2.2.2.jar
tiles-servlet-2.2.2.jar
tiles-template-2.2.2.jar

Я видел, что некоторые люди помогли удалить ejb3-persitence.jar, но мой classpath не содержит этот jar. Все в порядке, если я запускаю это приложение на других серверах приложений, таких как JBoss или Glassfish.

1 Ответ

2 голосов
/ 03 марта 2012

Этот класс представлен в нескольких jar-файлах, поэтому вам нужно убедиться, что ваше приложение использует правильный.

Сначала вам нужно выяснить, какой из них он использует.Попробуйте удалить его из папки WEB-INF / lib, и если вы по-прежнему получаете ту же ошибку, это означает, что она загружается откуда-то еще.

Также попробуйте скопировать ее в $ TOMCAT_HOME / lib в качестве теста дляпосмотрим что получится

Если вы используете Eclipse, попробуйте и проверьте JRE / JDK, который вы используете, потому что javaee-api-5 также включает эти классы.Может также стоить убедиться, что javaee-api не включен, когда он загружается Tomcat.

Примеры файлов jar, которые могут вызвать конфликты с файлом jar hibernate-jpa, приведены ниже (могут иметь разные номера версий):

 persistence.jar
 toplink-essentials.jar
 ejb3-persistence-1.0.1.GA.jar
 ejb3-persistence-1.0.2.GA.jar
 ejb3-persistence-3.3.2.Beta1.jar
 geronimo-jpa_1.0_spec-1.1.2.jar
 geronimo-jpa_3.0_spec-1.0.jar
 geronimo-jpa_3.0_spec-1.1.1.jar
 geronimo-jpa_3.0_spec-1.1.jar
 persistence-api-1.0.jar
 geronimo-jpa_2.0_spec-1.0-PFD2.jar
 geronimo-jpa_3.0_spec-1.0-M1.jar
 glassfish-persistence-api-b32g.jar
 javaee-api-5.0-1.jar
 javaee-api-5.0-2.jar
 openjpa-all-2.0.0-M3.jar
 openejb-itests-standalone-client-3.0.1.jar
 openejb-itests-standalone-client-3.0.jar
 openejb-itests-standalone-client-3.1.1.jar
 openejb-itests-standalone-client-3.1.jar

Эта проблема определенно вызвана конфликтами сJAR-файлы вам просто нужно попробовать в разных ситуациях, чтобы точно определить, где конфликт.

...