4

wsdl がスキーマをインポートする Weblogic で JAX-WS 2.1 を使用して Web サービスをデプロイしたいのですが、wsdl と一緒にするよりも別の場所に配置したいと思います。できればクラスパスからロードする必要があります。

jax-ws-catalog.xml を使用してこれをマップできることを望んでいましたが、アプリケーションをデプロイするときに Weblogic にそれを取得させることができず、xsd が見つからないときに失敗します。

私がやりたいことは不可能であり、カタログ マッピングは Web サービス クライアントにのみ使用されている可能性があります。これに関する明確なドキュメントは見つかりませんでした。

wsdl のインポートは次のようになります。

 <xs:import namespace="com.xyz.common/1.0"
schemaLocation="com.xyz.Common.1.0.xsd" />

WEB-INF フォルダーに配置された jax-ws-catalog.xml は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
    prefer="system">
    <system systemId="com.xyz.Common.1.0.xsd" 
            uri="classpath:com.xyz.Common.1.0.xsd" />
</catalog>

私が言ったように、この使用法はサポートされていないかもしれません。任意のポインタに感謝します。

ありがとう。

4

1 に答える 1

1

jax-ws-catalog.xml経由でエンドポイントを公開する場合、JAX-WS はサポートされていると思いますsun-jaxws.xml(つまり、経由などを意味しますcom.sun.xml.ws.transport.http.servlet.WSServletContextListener)。JAX-WS のソース コードを見ると、W3CEndpointReferenceBuilder/を使用するとカタログがサポートされることがわかります (この記事Provider.createW3CEndpointReference()で詳細がわかるかもしれません)。

Weblogic AS をデバッグ モードで起動し、 class の 2 つの public static parse() メソッドにブレークポイントを設定することをお勧めしますcom.sun.xml.ws.wsdl.parser.RuntimeWSDLParser

于 2011-01-27T19:11:14.237 に答える