0

weblogic.jar に含まれるデフォルトの Weblogic Web サービス スタックの代わりに Metro Web サービスを使用しようとしています。

問題は、WebLogic が独自の Metro スタックを使用する前に、Metro スタックを使用しようとしたときに発生します。

これまでに行った手順は、プロジェクトで webservices-rt.jar を参照することです。これまでのところ、ear ファイルのデプロイ中にこのエラーが発生しています....

原因: java.lang.LinkageError: ローダー制約違反: フィールド「DATETIME」を解決するとき、参照クラス、javax/xml/datatype/DatatypeConstants のクラス ローダー (weblogic/utils/classloaders/ChangeAwareClassLoader のインスタンス)、およびクラス ローダーフィールドの解決された型、javax/xml/namespace/QName の (のインスタンス) には、その型の異なる Class オブジェクトがあります

更新:

最新のエラー: 「クラス javax.xml.namespace.QName には @WebService も @WebServiceProvider もありません」 QName オブジェクトで @Webservice を探しているのは奇妙です:

  1. Application-Weblogic.xml の内容

<wls:prefer-application-packages>
<wls:package-name>com.ctc.</wls:package-name>
<wls:package-name>com.sun.xml.
</wls:package-name>
<wls:package-name>com.sun.istack.</wls:package-name>
<wls:package-name>com.sun.msv.datatype.
</wls:package-name>
<wls:package-name>com.sun.msv.driver.</wls:package-name>
<wls:package-name>com.sun.msv.grammar.
</wls:package-name>
<wls:package-name>com.sun.msv.reader.</wls:package-name>
<wls:package-name>com.sun.msv.relaxns.
</wls:package-name>
<wls:package-name>com.sun.msv.scanner.</wls:package-name>
<wls:package-name>com.sun.msv.util.
</wls:package-name>
<wls:package-name>com.sun.msv.verifier.</wls:package-name>
<wls:package-name>com.sun.msv.writer.
</wls:package-name>
<wls:package-name>com.sun.org.apache.xml.internal.</wls:package-name>
<wls:package-name>com.sun.wsit.
</wls:package-name>
<wls:package-name>javax.jws.</wls:package-name>
<wls:package-name>javax.xml.bind.
</wls:package-name>
<wls:package-name>javax.xml.soap.</wls:package-name>
<wls:package-name>javax.xml.stream.
</wls:package-name>
<wls:package-name>javax.xml.ws.</wls:package-name>
<wls:package-name>javax.xml.activation.
</wls:package-name>
<wls:package-name>javax.xml.annotation.</wls:package-name>
<wls:package-name>javax.xml.mail.
</wls:package-name>
<wls:package-name>javax.xml.security.</wls:package-name>
<wls:package-name>javax.xml.registry.
</wls:package-name>
<wls:package-name>javax.xml.rpc.</wls:package-name>
<wls:package-name>javax.xml.crypto.
</wls:package-name>
<wls:package-name>javanet.staxutils.</wls:package-name>
<wls:package-name>jp.gr.xml.
</wls:package-name>
<wls:package-name>org.codehaus.stax2.</wls:package-name>
<wls:package-name>org.glassfish.gmbal.
</wls:package-name>
<wls:package-name>org.iso_relax.</wls:package-name>
<wls:package-name>org.jcp.xml.dsig.
</wls:package-name>
<wls:package-name>org.jvnet.</wls:package-name>
<wls:package-name>org.relaxng.
</wls:package-name>
<wls:package-name>antlr.</wls:package-name>
<wls:package-name>org.apache.commons.lang.
</wls:package-name>
</wls:prefer-application-packages>

4

1 に答える 1

0

weblogic-application.xml デプロイメント記述子で構成されている FilteringClassLoader の使用を見てみましょう。WebLogic に含まれているライブラリを優先して、アプリケーションからクラスをロードするように WebLogic に指示できます。記述子要素は、アプリケーションからロードする Java パッケージを指定します。

WebLogic 10.3.4 を使用している場合は、ClassLoader 分析を使用して、競合しているパッケージを分析できます。

ここで私のプレゼンテーションをチェックしてください: SlideShare.netと私の CAT のデモ: YouTube

于 2011-04-28T14:43:22.867 に答える