Menu Close

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

概要

JAX-WS 仕様では、すべての実装が以下の項目をサポートすることが求められます。

Web サービスの説明の一部である Web サービスドキュメント (特に WSDL および XML スキーマドキュメント) を解決するときに使用する標準のカタログファシリティー。

このカタログファシリティーは、OASIS で指定された XML カタログファシリティーを使用します。WSDL URI を使用するすべての JAX-WS API およびアノテーションは、カタログを使用して WSDL ドキュメントの場所を解決します。

つまり、特定のデプロイメント環境に適するように、WSDL ドキュメントの場所を書き換える XML カタログファイルを指定できます。

カタログの作成

JAX-WS カタログは、OASIS XML Catalogs 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 を classpath: で始まる URI にマッピングできます。

uriSuffix

元の URI のサフィックスに基づいて、URI を別の URI にマッピングします。たとえば、foo.xsd で終わるすべての URI を classpath:foo.xsd にマッピングできます。

カタログのパッケージ化

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

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