2

次のバージョンを使用して、アプリケーションとWebサービスをweblogicにデプロイしようとしています。

  • Weblogic 10.3.5
  • Hibernate 4.1.1
  • Hibernate JPA API 2.0
  • EJB 2.0
  • Java 6

Webサービスに電話すると、エラーが発生します

<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"/>
...

確認しましたが、他の永続APIjarは含まれていません。

私の外部jarリストは次のとおりです。

  • ant-jakarta-oro-1.6.jar
  • antlr-2.7.2.jar
  • アスペクトjrt-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
  • コモンズ-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
  • 標準-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

これらを確認しましたが、OneToManyクラスを持つのはHibernateJPAだけです。問題はJPA1.0とJPA2.0の間の競合であることがわかっているので、競合を回避する方法があるかどうかを知りたいだけです。

ありがとう

4

2 に答える 2

4

WebLogic 10.3.5は JPA 2 をサポートできますが、このページで説明されているようにパッチを適用した後に限ります: (少なくとも、これはがそれを機能させる方法でした。)

要約すると、編集setDomainEnv.cmdと追加javax.persistence_1.0.0.0_2-0-0.jar、および環境変数com.oracle.jpa2support_1.0.0.0_2-0.jarへの追加です。PRE_CLASSPATH

私の Windows XP WebLogic インストールでは、次の行を追加しました。

REM Add JARs for JPA 2.0 at the front of the class path.
set WLS_MODULES=%WL_HOME%\..\modules
set PRE_CLASSPATH=%WLS_MODULES%\javax.persistence_1.0.0.0_2-0-0.jar;%WLS_MODULES%\com.oracle.jpa2support_1.0.0.0_2-0.jar

がんばれ、
ランディ

于 2012-04-27T19:23:12.450 に答える
1

Hibernate JPA API 2.0 を使用する必要がありますか?

WebLogic docに記載されているように、WebLogic 10.3.5 はTopLinkと呼ばれる 1 つの JPA 2.0 プロバイダーのみを大まかにサポートしているようです。

おそらくhibernate-jpa-2.0-api-1.0.1.Final.jar、クラスパスから を削除して、上記の WebLogic ドキュメントで説明されているように TopLink を使用してみてください。

ドキュメンテーションを踏まえて、少しだけメモしておきます。デフォルトでは、WebLogic 10.3.5 は、Java EE 5 との互換性を維持するために JPA 1.0 を使用します。JPA 2.0 は Java EE 6 の一部であるため、明示的に有効にする必要があります。

于 2012-04-27T00:42:26.200 に答える