JAX-WS による Web サービス・アプリケーションの実装
既存の JavaBeans または エンタープライズ Bean から開始すると、ボトムアップ・アプローチを使用して、Java™ API for XML-Based Web Services (JAX-WS) プログラミング・モデルに基づく Web サービスを開発できます。
始める前に
JAX-WS Web サービスとして公開する JavaBeans またはエンタープライズ Bean を決定します。

このタスクについて
JAX-WS プログラミング・モデルに基づいて Web サービスを開発するには、 既存の JavaBeans またはエンタープライズ Bean から開始するときにはボトムアップ開発アプローチを使用することができ、 また、既存の Web サービス記述言語 (WSDL) ファイルを使用して開始するときにはトップダウン開発アプローチを使用することができます。このタスクでは、 ボトムアップ開発アプローチを使用する場合のステップについて説明します。
既存 の JavaBeans またはエンタープライズ Bean から開始して JAX-WS Web サービスを開発する場合は、 アノテーションを使用して Bean を JAX-WS Web サービスとして公開できます。@WebService または @WebServiceProvider アノテーションを Bean に追加することにより、Bean が JAX-WS Web サービスとして定義されます。JAX-WS Web サービスでは、 オプションでサービス・エンドポイント・インターフェースを使用できます。Bean およびオプションのサービス・エンドポイント・インターフェースをアノテーション付けすることに加えて、Web サービスが必要とするすべての成果物をアセンブルし、得られたアプリケーションを アプリケーション・サーバー環境にデプロイして、Bean を Web サービスとして使用可能にするプロセスを完了する必要があります。 WSDL ファイルを使用することがベスト・プラクティスと考えられますが、 WSDL ファイルを JAX-WS Web サービスでパッケージすることは必須ではありません。
- JavaBeans を使用する場合の考慮事項
- JAX-WS Web サービスとして公開されている JavaBeans は、HTTP トランスポートを介してのみサポートされます。
- JavaBeans は Contexts and Dependency Injection (CDI) を使用することがあります。コンストラクター注入はサポートされていないことに注意してください。
- エンタープライズ Bean を使用する場合の考慮事項
- エンタープライズ Bean は、ステートレス・セッション Bean または singleton セッション Bean でなければなりません。
- JAX-WS Web サービスとして公開されるエンタープライズ Bean は EJB 3.0 以降のモジュールにパッケージする必要があります。
- エンタープライズ Bean を含む JAX-WS アプリケーションは、endptEnabler コマンドを使用してデプロイする必要があります。
- エンタープライズ Bean を使用する JAX-WS Web サービスは、 HTTP または Java Message Service (JMS) トランスポートを介してサポートされます。
- エンタープライズ Bean は CDI を使用することがあります。 コンストラクター注入はサポートされていないことに注意してください。
- オプションで、JAX-WS アプリケーション・パッケージに 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 アノテーションに関する情報を 参照してください。
手順
タスクの結果
JAX-WS アプリケーションが開発されました。