付録B.1 移行方法の詳細
POJOで開発されたWebサービスを,EJBのWebサービスとして動作させることで,EJBの機能を利用できます。ここでは,POJOのWebサービスをEJBのWebサービスに移行する方法について説明します。なお,POJOのWebサービスで十分な場合,EJBへの移行は不要です。
POJOのWebサービスを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 "statelessjava_dynamic_generate"</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ファイルの作成」を参照してください。