JAX-WS アプリケーション・パッケージ化
Java™ Application Programming Interface (API) for XML Web Services (JAX-WS) アプリケーションを Web サービスとしてパッケージできます。JAX-WS Web サービスは、Web アプリケーション・アーカイブ (WAR) ファイルまたはエンタープライズ・アーカイブ (EAR) ファイル内の WAR モジュールに含まれています。
- WEB-INF/web.xml ファイル
- アプリケーション・モジュールに含まれる Web サービスを実装するアノテーション付きクラス
- [オプション] アプリケーション・モジュールに含まれる Web サービスを記述する Web サービス記述言語 (WSDL) の資料
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
web.xml にはサーブレットまたはサーブレット・マッピング・エレメントが含まれることがあります。 web.xml ファイルに対するカスタマイズが不要な場合、WebSphere® Application Server ランタイムはこれらを、モジュールがロードされる際に定義します。 web.xml ファイルの構成について詳しくは、JAX-WS アプリケーションの web.xml ファイルにある Web URL パターンのカスタマイズを参照してください。
アノテーション付きクラスには、少なくとも @WebService アノテーションを含む Web サービス実装が含まれている必要があります。Web サービスに関連したアノテーションの定義および仕様は JAX-WS および JSR-181 の仕様で提供されます。Web サービス実装クラスは、WEB-INF/classes か、または WAR ファイルの WEB-INF/lib ディレクトリーに含まれる Java アーカイブ (JAR) ファイル内のディレクトリーに存在する場合があります。
オプションで、JAX-WS アプリケーション・パッケージに WSDL 文書を組み込むことができます。 特定の Web サービスの WSDL 文書が省略された場合、WebSphere Application Server ランタイムは Web サービス実装クラスに含まれる注釈から WSDL 定義を動的に構成します。
WebSphere Application Server バージョン 7.0 以降からは、Java EE 5 アプリケーション・モジュール (Web アプリケーション・モジュールのバージョン 2.5 以上、または EJB モジュールのバージョン 3.0 以上) は、JAX-WS のサービスとクライアントの識別のためにアノテーションのスキャンが実行されます。ただし、Java EE 5 より前のアプリケーション・モジュール (Web アプリケーション・モジュールの バージョン 2.4 以前、または EJB モジュールのバージョン 2.1 以前) では、 パフォーマンス上の理由から、デフォルトでは JAX-WS アノテーションがスキャンされません。 バージョン 6.1 Feature Pack for Web Services では、デフォルトの動作として、アプリケーションのインストール時に、JAX-WS サービスを識別するために Java EE 5 より前の Web アプリケーション・モジュールをスキャンし、サービス・クライアントを探索するために Java EE 5 より前の Web アプリケーション・モジュールおよび EJB モジュールをスキャンしていました。 WebSphere Application Server バージョン 7.0 以降のデフォルトの動作では、以前のリリースのフィーチャー・パックとの後方互換性を維持するために、アプリケーションのインストール時またはサーバーの始動時に Java EE 5 より前のモジュールでアノテーションをスキャンしないようになっているため、Web アプリケーション・アーカイブ (WAR) ファイルまたは EJB モジュールの META-INF/MANIFEST.MF で UseWSFEP61ScanPolicy プロパティーを構成するか、または Java 仮想マシンのカスタム・プロパティー com.ibm.websphere.webservices.UseWSFEP61ScanPolicy をサーバーで定義して、アプリケーションのインストール時およびサーバーの始動時にスキャンを要求するようにする必要があります。アノテーションのスキャンについて詳しくは、JAX-WS アノテーションに関する情報を 参照してください。


SEI および実装クラスをアプリケーション/モジュールと一緒にパッケージできない場合は、 これらのクラスを含んでいる JAR ファイルを 1 つの隔離された共有ライブラリーにパッケージして、この共有ライブラリーをアプリケーション/モジュールと関連付けることをお勧めします。
gotcha