Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


付録B.1 移行方法の詳細

POJOで開発されたWebサービスを,EJBのWebサービスとして動作させることで,EJBの機能を利用できます。ここでは,POJOのWebサービスをEJBのWebサービスに移行する方法について説明します。なお,POJOのWebサービスで十分な場合,EJBへの移行は不要です。

POJOのWebサービスをEJBのWebサービスに移行する方法を次の表に示します。

表B‒1 EJBのWebサービスに移行する方法

項番

POJOのWebサービスの構成物

EJBのWebサービスへの移行方法

1

Webサービス実装クラス

ソースコードにjavax.ejb.Statelessアノテーションを追加し,コンパイルします。

2

項番1以外のJavaクラス(SEI,JavaBeansクラス(スタブ)など)

EJBのWebサービスへの移行後もクラスファイルをそのまま使用できます。

3

WSDL

POJOのWebサービスの場合とEJBのWebサービスの場合とではWebサービスとして公開するURLが異なるため,soap:address要素のlocation属性などのURLに関する値を変更して使用します。EJBのURLについては,「10.2.2(1) ディスカバリ」を参照してください。

4

cosminexus-jaxws.xml,web.xml,application.xmlなどのDD

POJOのWebサービス用に作成されたDDは,EJBのWebサービスではそのまま使用できません。EJBのWebサービス用に新たにDDを作成してください。

POJOのWebサービスをEJBのWebサービスに移行する場合,Webサービス実装クラスのソースコードの修正が必要です。ここでは,POJOのWebサービスの実行に必要なクラスファイルと,Webサービス実装クラスのソースコードがあることを前提に説明します。

移行手順の流れを次に示します。

〈この項の構成〉

(1) EJBのWebサービス実装クラスを作成する

POJOのWebサービス実装クラスのソースコードにjavax.ejb.Statelessアノテーションでアノテートします。アノテートしたソースコードをコンパイルしてクラスファイルを作成します。

(2) Webサービス実行に必要なクラスファイルおよびWSDLを流用する

POJOのWebサービスを実行するために必要なSEI,JavaBeansクラス(スタブ)などのクラスファイルは,EJBのWebサービスとして実行する場合にも使用できます。

POJOのWebサービスを実行するために使用していたWSDLがある場合は,EJBのWebサービスとして実行する場合にも使用できます。ただし,POJOのWebサービスをEJBのWebサービスとして実行した場合に,Webサービスとして公開するURLが異なるため,WSDLのsoap:address要素のlocation属性などのURLに関する値を変更して使用します。EJBのWebサービスのURLについては,「10.2.2(1) ディスカバリ」を参照してください。

(3) EJB JARファイルを作成する

(1)(2)のクラスファイルおよびWSDLをEJB JARファイルに格納します。EJB JARファイルの構成については,「3.5.2 EJB JARファイルの構成」を参照してください。

(4) デプロイメントディスクリプタを作成する

(3)で作成したEJB JARファイルを指定するapplication.xmlを作成します。application.xmlの例を次に示します。「statelessjava.jar」には(3)で作成したEJB JARファイルの名前を指定します。

<?xml version="1.0" encoding="UTF-8"?>
<application version="6" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd">
 
  <description>Sample application &quot;statelessjava_dynamic_generate&quot;</description>
  <display-name>Sample_application_statelessjava_dynamic_generate</display-name>
  <module>
    <ejb>statelessjava_dynamic_generate.jar</ejb>
  </module>
</application>

バージョン5のapplication.xmlを作成する場合は,application要素のversion属性を"5"に,xsd:schemaLocation属性の二つ目のロケーション情報を"http://java.sun.com/xml/ns/javaee/application_5.xsd"にしてください。

EJBのWebサービスの動作には,web.xmlは必須ではありません。EJBのWebサービスで,サーブレットフィルタなどの設定をweb.xmlに加える場合にweb.xmlを作成します。詳細については,「3.5.4 EJBのWebサービスの設定用WARファイルの作成」を参照してください。また,cosminexus-jaxws.xmlはEJBのWebサービスには適用されません。

(5) EARファイルを作成する

(3)(4)で作成したEJB JARファイルとapplication.xmlを含むEARファイルを作成します。EARファイルの構成については,「3.5.3 EARファイルの作成」を参照してください。