JPA Conflit avec Hibernate et Weblogic
Je suis en train de déployer mon application et le service web pour weblogic en utilisant les versions suivantes:
- Weblogic 10.3.5
- Hibernate 4.1.1
- Hibernate JPA API 2.0
- EJB 2.0
- Java 6
Lorsque j'appelle mon service web, je reçois l'erreur
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
<faultcode>ns2:Server</faultcode>
<faultstring>javax/persistence/OneToMany.orphanRemoval()Z</faultstring>
<detail>
<ns2:exception class="java.lang.NoSuchMethodError" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
<message>javax/persistence/OneToMany.orphanRemoval()Z</message>
<ns2:stackTrace>
<ns2:frame class="org.hibernate.cfg.AnnotationBinder" file="AnnotationBinder.java" line="1868" method="processElementAnnotations"/>
<ns2:frame class="org.hibernate.cfg.AnnotationBinder" file="AnnotationBinder.java" line="768" method="processIdPropertiesIfNotAlready"/>
...
J'ai vérifié et il n'y a pas d'autres persistence api pots inclus.
Mon externes pot liste est:
- ant-jakarta-oro-1.6.jar
- antlr-2.7.2.jar
- aspectjrt-1.5.3.jar
- cactus.core.framework.uberjar.javaEE.14-1.8.1.jar
- cactus.integration.maven2-1.8.1.jar
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-codec-1.3.jar
- commons-collections-3.2.1.jar
- commons-digester-1.8.jar
- commons-fileupload-1.1.1.jar
- commons-httpclient-2.0-rc2.jar
- commons-lang3-3.0.1.jar
- commons-logging-1.1.1.jar
- commons-validator-1.3.1.jar
- dom4j-1.6.1.jar
- generic-web-service-schema-4.0.jar
- hibernate-commons-annotations-4.0.1.Final.jar
- hibernate-core-4.1.1.Final.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
- httpunit-1.6.jar
- javassist-3.15.0-GA.jar
- jboss-logging-3.1.0.GA.jar
- jboss-transaction-api_1.1_spec-1.0.0.Final.jar
- js-1.5R4.1.jar
- jstl-1.0.2.jar
- jtidy-4aug2000r7-dev.jar
- junit-3.8.2.jar
- nekohtml-1.9.6.jar
- oracle.webservices.standalone.client-11.1.1.jar
- oro-2.0.8.jar
- standard-1.0.6.jar
- struts-core-1.3.10.jar
- struts-el-1.3.10.jar
- struts-taglib-1.3.10.jar
- struts-tiles-1.3.10.jar
- weblogic-webservices-api-1.1.0.0.jar
- xercesImpl-2.8.1.jar
- xml-apis-1.3.03.jar
- xmlParserAPIs-2.2.1.jar
J'ai vérifié ces et Hibernate JPA est le seul avec le OneToMany classe. Je sais que le problème est un conflit entre JPA JPA 1.0 et 2.0 donc je veux juste savoir si il existe un moyen de contourner le conflit.
Grâce
Vous devez vous connecter pour publier un commentaire.
Avez-vous d'utiliser Hibernate JPA API 2.0?
Comme mentionné dans WebLogic doc, WebLogic 10.3.5 semble à peu près de n'avoir qu'un JPA 2.0 fournisseur, qui est appelé TopLink.
Peut-être vous pouvez simplement supprimer le
hibernate-jpa-2.0-api-1.0.1.Final.jar
de votre classpath et essayez d'utiliser TopLink comme décrit ci-dessus mentionné WebLogic documentation.Je vais juste donner une petite note compte tenu de la docs: par défaut WebLogic 10.3.5 utilise JPA 1.0 afin de maintenir Java EE 5 de compatibilité. Depuis JPA 2.0 fait partie de Java EE 6, vous devez activer explicitement.
WebLogic 10.3.5 peut soutien JPA 2, mais seulement après l'application d'un patch comme décrit dans cette page: (Au moins, c'est comment je réussi à le faire fonctionner pour moi.)
Il est apparu à l'édition
setDomainEnv.cmd
et l'ajout dejavax.persistence_1.0.0.0_2-0-0.jar
etcom.oracle.jpa2support_1.0.0.0_2-0.jar
à laPRE_CLASSPATH
variable d'environnement.Pour mon Windows XP WebLogic installation, j'ai ajouté ces lignes:
Bonne Chance,
Randy