2

Weblogic 10.3.5 にデプロイされたテスト Web アプリケーションがあります。Web アプリケーションには、jax-ws を使用して同じ Weblogic にデプロイされた Web サービスを呼び出すサーブレットが含まれています。サーブレットにアクセスすると、次の例外がスローされます。

Two classes have the same XML type name "address". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
    at com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address
    at public com.sun.xml.ws.developer.MemberSubmissionEndpointReference$Address com.sun.xml.ws.developer.MemberSubmissionEndpointReference.addr
    at com.sun.xml.ws.developer.MemberSubmissionEndpointReference
this problem is related to the following location:
    at javax.xml.ws.wsaddressing.W3CEndpointReference$Address
    at private javax.xml.ws.wsaddressing.W3CEndpointReference$Address javax.xml.ws.wsaddressing.W3CEndpointReference.address
    at javax.xml.ws.wsaddressing.W3CEndpointReference

サーブレットのロジックを共通の Java クラスにコピーして実行しました。テストは成功しました。したがって、問題は Web アプリケーションにあるはずです。

以下のように weblogic-application.xml を変更して、prefer-application-packages セクションを追加しましたが、まだ機能しません。

<prefer-application-packages>
    <package-name>javax.xml.ws.*</package-name>
    <package-name>javax.xml.bind.*</package-name>
    <package-name>javax.jws.*</package-name>
    <package-name>javax.namespace.xml.*</package-name>
    <package-name>javax.xml.soap.*</package-name>
    <package-name>org.apache.xerces.*</package-name>
    <package-name>org.apache.commons.*</package-name>
    <package-name>com.sun.xml.*</package-name>
</prefer-application-packages>

誰でもこれについて私を助けることができ、このバグに数日を費やしましたが、まったく進歩しませんでした。事前にご返信いただきありがとうございます。

更新 1

Web アプリケーションでは、metro を使用したくありません。java.net からダウンロードした jax-ws を使用し、put jaxws-rt.jar、jaxws-api.jar、jaxb およびその他の関連 jar を ear/APP に配置します。 -INF/lib.

WebLogic クラスローダ分析ツール (wls-cat) は、いくつかのクラスの競合があることを通知し、weblogic-application.xml に優先アプリケーション パッケージを追加することを提案します。そのため、prefer-application-packages を追加して、weblogic jax-ws/metro 実装からではなく、アプリケーションからそれらをロードするよう weblogic に指示します。

しかし、まだ機能しません。

4

1 に答える 1

0

問題は、Oracle JaxWS (Metro ベース) と呼ばれる独自の実装を持つ Weblogic で Metro JaxWs を使用したいという事実から生じる可能性があります。

Weblogic で Metro を使用する方法が説明されているリンクを次に示します: http://metro.java.net/guide/ch02.html#weblogic-10

Metro を使用せず、Oracle JaxWS に依存している場合は、優先ライブラリや特別なパッケージを使用する必要はありません。

于 2012-09-01T19:04:07.600 に答える