29.3. JAX-WS カタログの使用

概要

JAX-WS 仕様では、すべての実装が以下をサポートすることが義務付けられています。

Web サービスの記述の一部である Web サービス文書、特に WSDL および XML スキーマ文書を解決するときに使用される標準のカタログ機能。

このカタログ機能は、OASIS によって指定された XML カタログ機能を使用します。WSDL URI を取得するすべての JAX-WS API とアノテーションは、カタログを使用して WSDL ドキュメントの場所を解決します。

これは、WSDL ドキュメントの場所を特定のデプロイメント環境に合わせて書き換える XML カタログファイルを提供できることを意味します。

カタログを書く

JAX-WS カタログは、OASIS XML カタログ 1.1 仕様で定義されている標準の XML カタログです。マッピングを指定できます。

  • ドキュメントのパブリック識別子および/または URI へのシステム識別子。
  • リソースの URI から別の URI へ。

表29.1「一般的な JAX-WS カタログ要素」 は、WSDL ロケーション解決に使用されるいくつかの一般的な要素を示しています。

表29.1 一般的な JAX-WS カタログ要素

要素説明

uri

URI を代替 URI にマップします。

rewriteURI

URI の先頭を書き換えます。たとえば、この要素を使用すると、http://cxf.apache.org で始まるすべての URI を クラスパス で始まる URI にマップできます。

uriSuffix

元の URI の接尾辞に基づいて、URI を代替 URI にマップします。たとえば、foo.xsd で終わるすべての URI を classpath:foo.xsd にマップできます。

カタログのパッケージ化

JAX-WS 仕様では、WSDL および XML Schema ドキュメントを解決するために使用されるカタログが META-INF/jax-ws-catalog.xml という名前の利用可能なすべてのリソースを使用してアセンブルされることを示しています。アプリケーションが単一の JAR または WAR にパッケージ化されている場合は、カタログを単一のファイルに配置できます。

アプリケーションが複数の JAR としてパッケージ化されている場合は、カタログを複数のファイルに分割できます。各カタログファイルは、特定の JAR のコードによってアクセスされる WSDL のみを処理するようにモジュール化できます。