exteNd Workbench 4.1
コアヘルプ

 

    First Previous Next Last チュートリアル : WEBサービスの操作  05/19/03 09:50:45 

レッスン 2    Webサービスの作成

 
Top of page

学習する内容

このレッスンでは、WebサービスのWARプロジェクトをセットアップし、Web Serviceウィザードを実行してサービスのSOAP処理コードを生成する方法について学習します。 サービスのユーザによって呼び出されるメソッドを実装するJavaクラスのみを提供する必要があります。このサンプルでは、これは、add、subtract、multiply、およびdivideという単純なメソッドを使用するCalculatorです。 その後、Calculator Webサービスを配備し、ウィザードにより提供されたテストツールを使用して、このサービスをテストします。

学習内容は次のとおりです。

 
Top of section

実行する内容

  1. プロジェクトのディレクトリをセットアップする

  2. 新しいプロジェクトを作成する

  3. ソースコードをプロジェクトに追加する

  4. jBroker Webライブラリをプロジェクトに追加する

  5. プロジェクトを作成する

  6. Web Serviceウィザードを実行する

  7. アーカイブを作成する

  8. 配備記述子を検査する

  9. プロジェクトを配備する

  10. テストクライアントコードを編集する

  11. 生成したクライアントを使用してWebサービスをテストする

所要時間   約15分

注記:   このレッスンで作成するWebサービスを配備するには、J2EEアプリケーションサーバを実行する必要があります。

 
Top of page

J2EEを使用したWebサービス

Webサービスは、リモートサーバで使用可能なコンポーネントです。 そのインタフェースは既知であり、標準化されたメッセージプロトコルを介してメソッドを呼び出すことができます。

J2EEの環境では、WebサービスをJ2EEアプリケーションサーバでWAR (Web Archive)にサーブレットとして配備することで、Webサービスが使用できるようにします。 クライアントアプリケーションは、SOAP XMLメッセージを使用してリモートメソッド呼び出しを行います。 リモートサーバのSOAP Dispatcherは、メッセージを受信し、Webサービスサーブレットにメソッド呼び出しを送ります。 Webサービスは、SOAPメッセージとして戻される値を折り返し、クライアントに送信し直します。

 
Top of section

JAX-RPCおよびRMI

Novellでは、 JAX-RPC (Java API for XML-based RPC)およびRMI (Java Remote Method Invocation)に基づく、Webサービスを開発するためのJ2EEモデルをサポートしています。 ビジネスメソッドのシグネチャは、リモートインタフェースで宣言されます。 サービスではスケルトンクラスを使用し、またクライアントではスタブクラスを使用して、サービスとクライアントアプリケーション間での通信を管理します。

スケルトンおよび結合   Webサービスのスケルトンクラスは、リモートインタフェースを実装します。 スケルトンは、SOAPリクエストの受信、XMLからJavaデータタイプへの引数の変換、およびビジネスメソッドの呼び出しを行います。 Webサービスには、スケルトンを拡張し、ビジネスメソッドを実装する別のクラスに、メソッド呼び出しを委任する結合クラスも含まれます。

スタブ   クライアントアプリケーションでは、リモートインタフェースも同様に実装するスタブクラスを使用します。 クライアントがリモートインタフェースで定義されたメソッドを呼び出した場合、スタブは保存しているURLを使用して呼び出しをWebサービスに送信し、メソッド呼び出しをSOAPメッセージとして転送します。

これらのクラスの実装の詳細について心配する必要はありません。Novellでは、このコードを生成するツールを提供しています。

 
Top of section

Workbench およびjBroker Web

Workbench   Novell exteNd Workbenchでは、Webサービスとクライアントアプリケーション間での通信に対してコードを生成するWeb Serviceウィザードを用意しています。 Webサービスでは、ビジネスメソッドのコードのみを提供する必要があります。 Webサービスを呼び出すクライアントでは、WebサービスをXMLで記述したWSDLファイルから、コードを生成できます。

jBroker Web   jBroker Webは、J2EEアプリケーションサーバ上でのWebサービスに対して、コンパイラおよびランタイムサポートを提供するJAX-RPC実装です。 これは、Workbenchに含まれ、Web Serviceウィザードでこのコンパイラを使用して、Webサービスコードを生成します。 配備したアプリケーションには、jBroker Webおよび関連するAPI JARへのアクセスが必要となります。

jBroker Webには、コンパイラを直接呼び出すコマンドラインツールが含まれていますが、このツールは、このチュートリアルでは使用しません。 詳細については、 jBroker Webヘルプを参照してください。

このレッスンの残りでは、プロジェクトのセットアップ、ウィザードを使用したコードの生成、および結果の配備とテストについて示しながら、Webサービスを作成する方法について説明します。

 
Top of page

サービスのWARプロジェクトの定義

WorkbenchのWeb Serviceウィザードは、使用可能にするビジネスメソッドを実装したり、定義したりするソースオブジェクトで開始します。 このプロセスには、いくつかの開始点が考えられます。 可能な開始点は、次のとおりです。

Calculator Webサービスでは、基本的な算術のメソッドを定義するCalculatorImplクラスを使用します。 また、0で除算する場合の例外を処理するDivideFaultクラスも使用します。

この節では、Calculator WebサービスのWARプロジェクトを作成します。 まず、ディレクトリを簡単にセットアップします。 その後、Workbenchを起動してプロジェクトファイルを作成し、プロジェクトにCalculatorImpl.javaを追加します。

 
Top of section

エクササイズ 2-1: プロジェクトのディレクトリをセットアップする

このエクササイズでは、ソースファイルのディレクトリを作成します。

  1. ご使用のオペレーティングシステムのツールを使用して、CalculatorWSというプロジェクトのルートディレクトリを作成します。 ディスクドライブのルートレベル、または選択したサブディレクトリに配置できます。 チュートリアルのサンプルパスでは、WorkbenchProjectsディレクトリにCalculatorWSを作成したことを想定しています。 Windowsでは、次のようになります。

      c:\WorkbenchProjects\CalculatorWS
    
  2. CalculatorWSディレクトリで、srcというサブディレクトリを作成し、srcディレクトリでcalcというパッケージサブディレクトリを作成します。

  3. ファイルCalculatorImpl.javaおよびDivideFault.javaを、Workbench-install-dir\docs\tutorial\TutorialFiles\webservicesディレクトリから、CalculatorWS\src\calcプロジェクトディレクトリにコピーします。

これで、次のようなディレクトリ構造ができます。

  WorkbenchProjects\CalculatorWS\src\calc

 
Top of section

エクササイズ 2-2: 新しいプロジェクトを作成する

このエクササイズでは、Workbenchを起動しNew Projectウィザードを使用して、Calculator Webサービスのプロジェクトを作成します。

  1. Workbenchを開始します。 Windowsの[スタート]メニューからNovell exteNd Workbenchのショートカットを使用できます。またはWorkbenchがすでに実行されており、プロジェクトが開いている場合は、メニューから[File]>[Close Project]の順に選択します。 開いているファイルを閉じるよう求められた場合、[Yes]をクリックします。

  2. メニューから[File]>[New Project]の順に選択します。

  3. New Projectウィザードで、[WAR]を選択してから[OK]をクリックします。

    tut2-1NewProject

  4. [Project Name]フィールドに、「Calculator」と入力します。

  5. Project Location]フィールド横の省略記号をクリックして、 エクササイズ 2-1: プロジェクトのディレクトリをセットアップするで作成したCalculatorWSディレクトリを選択します。 [OK]をクリックすると、ダイアログボックスの残りのフィールドが自動的に記入されます。

  6. [Project J2EE Version]フィールドで、[J2EE 1.2 (WAR 2.2)]を指定して、J2EE 1.2または1.3をサポートしている任意のサーバでアプリケーションが実行されるようにします。

    tut2-2ProjectDialog

  7. Next]をクリックします。

  8. ウィザードによりWEB-INFディレクトリを作成するかどうか尋ねるメッセージが表示されたら、[Yes]をクリックします。

    ウィザードにより、プロジェクト情報が要約されます。

    注記:   [New Project]の選択時に別のプロジェクトが開いていた場合、そのプロジェクトを現在のプロジェクトに追加することについて、パネルが表示される場合があります。 その場合、[Add this project]オプションはオンにしないようにします。 [Next]をクリックして、[Summary]パネルに移動します。

  9. Finish]をクリックします。

    ナビゲーションペインで、[Project]タブに新しいプロジェクトが表示されます。 ソースレイアウトビューまたはアーカイブレイアウトビューのいずれかを使用できます。

 
Top of section

エクササイズ 2-3: ソースコードをプロジェクトに追加する

このエクササイズでは、srcディレクトリをプロジェクトに追加し、J2EEアーカイブでの場所を指定します。

  1. ナビゲーションペインで、[Directory]タブを選択します。

  2. WorkbenchProjects/CalculatorWS/srcディレクトリに移動します。

  3. srcディレクトリを右クリックして、[Add to Project]を選択します。

  4. [Add to Project]ダイアログボックスで、[Add the files to the archive at thislocation]をオンにします。 テキストボックスに、「WEB-INF/classes」と入力します。 [Include subdirectories]はオンのままにします。

    tut2-3AddToProject

  5. OK]をクリックします。

 
Top of section

エクササイズ 2-4: jBroker Webライブラリをプロジェクトに追加する

Webサービスでは、jbroker-web.jarのクラスおよびSOAPメッセージ処理のサポートJARを使用します。 このエクササイズでは、これらのJARをランタイム時のアクセス用にアーカイブに追加し、コンパイル時のアクセス用にプロジェクトクラスパスに追加します。

  1. Workbenchで、メニューから[Project]>[Project Settings]の順に選択します。

  2. Contents]タブを選択し、[Add Entry]ボタンをクリックします。

  3. [Select Contents]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリに移動した後、次のファイルを選択して[Open]をクリックします。

    [Add to Project]ダイアログボックスにより、各ファイルの情報を1つずつ入力するよう求められます。

  4. jaxrpc-api.jarの情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/jaxrpc-api.jar」と入力します。 その後、[OK]をクリックします。

  5. jbroker-web.jarの情報を求められた場合、[Add the file to the archive at thislocation]をオンにします。 テキストボックスに、「WEB-INF/lib/jbroker-web.jar」と入力します。 その後、[OK]をクリックします。

  6. saaj-api.jarの情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/saaj-api.jar」と入力します。 その後、[OK]をクリックします。

  7. xerces.jarの情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/xerces.jar」と入力します。 その後、[OK]をクリックします。

    これで、アーカイブのWEB-INF/libディレクトリに、JARが含まれます。

    tut2-4ProjectSettingsContents

  8. Classpath/Dependencies]タブを選択し、[Add Entry]ボタンをクリックします。

  9. [Add to Classpath]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリをもう一度検索し、次のファイルを選択して[Open]、[OK]の順にクリックします。

    [Classpath/Dependencies]タブは、次のようになります。

    tut2-5ProjectSettingsClasspath

    注記:   J2EEクラスのアーカイブが、すでにWARのクラスパスに含まれています。

  10. OK]をクリックして、[Project Settings]ダイアログボックスを閉じます。

    これで、プロジェクトに必要なJARへの参照が含まれます。 アーカイブを作成すると、これらのJARが含まれることになります。 また、JARはアーカイブ作成用のクラスパスにも含まれています。

  11. ナビゲーションペインで、[Project]タブを選択し、プロジェクトのコンテンツを表示します。 [Source layout]を選択して[src]を展開し、[calc]ディレクトリを選択します。 ここには、CalculatorImpl.javaおよびDivideFault.javaが含まれます。[Workbench-install-directory/compilelib]エントリをクリックして、下部ペインにjbroker-web.jarおよび他のJARを表示します。

    展開したソースレイアウトは、次のようになります。

    tut2-5ProjectSrc

 
Top of section

エクササイズ 2-5: プロジェクトを作成する

Web Serviceウィザードでは、コンパイル済みのファイルを使用するため、プロジェクトを作成してから呼び出す必要があります。

 
Top of page

Webサービスコードの生成

ソースオブジェクトをWebサービスに変換するには、Web Serviceウィザードを実行します。 このウィザードでは、サーバでXML SOAPリクエストをソースオブジェクトに対するメソッド呼び出しに変換できるコードが生成されます。

ヒント:   Web Serviceウィザードでは、開いているプロジェクトが要求され、 このプロジェクト に生成したファイルが挿入されます。

WebサービスのURLについて   ウィザードを実行する際に指定する情報の1つに、クライアントがサービスへのアクセス時に使用するURLがあります。 URLは、いくつかの部分から構成されています。

部分

説明

サーバ

ポート番号を含むサーバのURL (デフォルトのポート80でない場合)、およびサーバ固有のデータ

ヒント:   Novell exteNd Application Server では、WARを配備したデータベースを含む

http://localhost/ProverbsCloud/

http://www.mydomain.com:8080/

Webアプリケーション

WARのURL

ヒント:   Novell exteNd Application Server では、配備計画で指定する相対URL

Calculator/

サーブレットマッピング

サーブレットのURLであり、配備記述子の[Servlet Mapping]セクションで割り当てられたURLパターン

CalculatorImpl

たとえば、このWebサービスをローカルNovell exteNd Application Serverに配備すると、URLは次のようになります。

  http://localhost:80/ProverbsCloud/Calculator/CalculatorImpl

 
Top of section

エクササイズ 2-6: Web Serviceウィザードを実行する

このエクササイズでは、CalculatorImplをWebサービスに変換するクラスを生成します。

  1. Workbenchでプロジェクトを開き、メニューから[File]>[New]の順に選択します。

  2. [New File]ダイアログボックスで、[Web Services]タブを選択してから、[New Web Service]を選択して[OK]をクリックします。

    tut2-7WSWizard1

    Workbenchに、Web Serviceウィザードのプロジェクトの場所を指定するパネルが表示されます。

  3. このパネルでデフォルトを受け入れるか(次を参照)、[Next]をクリックできます。

    tut2-6WSWizProjLoc

  4. クラス選択パネルが表示されたら、[class calc.CalculatorImpl]を選択して、[Next]をクリックします。

    tut2-7WSWizard2

    注記:   デフォルトでは、ウィザードにより、プロジェクトのコンパイル済みクラスが表示されます。 オプションで、(アーカイブなど)他の場所に保存されたクラスのリストを表示し、リストをフィルタ処理して特定の種類のクラスのみを表示することができます。

  5. メソッド選択パネルが表示されたら、[Add All]をクリックして4つのCalculatorメソッドをすべて使用します。 [Next]をクリックします。

    tut2-7WSWizard3

    クラス生成およびSOAPオプションパネルが表示されます。

  6. Service address]テキストボックスで、クライアントがサービスへのアクセス時に使用するURLを指定します。

    URLは、配備サーバに応じて異なります( WebサービスのURLについてを参照)。 たとえば、www.mydomain.comでNovell exteNd Application ServerのProverbsCloudデータベースに配備したアプリケーションのURLは、次のとおりです。

      http://www.mydomain.com/ProverbsCloud/Calculator/CalculatorImpl
    

    tut2-7WSWizard4

  7. Finish]をクリックします。

ウィザードの結果

ウィザードを実行すると、プロジェクトのcalcディレクトリに複数のファイルが追加されます。 これらのファイルは、ウィザードによりプロジェクトディレクトリに追加されるため、自動的にプロジェクトの一部になります。

ウィザードですべての生成オプションをオンにすると、次のファイルがプロジェクトに含まれます。 Javaファイルは、calcパッケージディレクトリ内にあります。

ファイル

説明

使用場所

CalculatorImplWS.java

ソースオブジェクトのメソッドに対して宣言を持つリモートインタフェース。 java.rmi.Remoteを拡張します。各メソッドは、RemoteExceptionをスローします。

Webサービスおよびクライアントプログラム

CalculatorImplWS_ServiceSkeleton.java

サーバでSOAPメッセージを処理するjBroker Webクラス。 このクラスを変更する必要はありません。

Webサービス

CalculatorImplWS_ServiceTieSkeleton.java

Webサービスのメソッドを実装するオブジェクトを特定するために、setTarget()メソッドでServiceSkeletonを拡張するjBroker Webクラス。 このクラスを変更する必要はありません。

Webサービス

CalculatorImplWSTie.java

TieSkeletonを拡張し、結合クラスのターゲットをCalculatorImplWSDelegateに設定するDelegatorクラス。

Webサービス

CalculatorImplWSDelegate.java

リモートインタフェースを実装し、ソースオブジェクトのメソッドを呼び出すDelegatorクラス。 ソースオブジェクトのすべてのコンストラクタを実装します。

Webサービス

CalculatorImplWSService.java

Webサービスのスタブを取得するためにJAX-RPCクライアントによって使用されるサービスインタフェース。 このクラスを変更する必要はありません。

クライアントプログラム

CalculatorImplWSServiceImpl.java

スタブ(CalculatorImplWS_Stub)のインスタンス化を処理するサービス実装クラス。 このクラスを変更する必要はありません。

クライアントプログラム

CalculatorImplWS_Stub.java

クライアントでSOAPメッセージを処理するjBroker Webクラス。 このクラスを変更する必要はありません。

クライアントプログラム

CalculatorImplWSClient.java

WebサービスをテストするためのスタンドアロンJavaプログラム。 コードの編集後、配備したWebサービスが動作するか検証するために使用します。 サンプルコードは、クライアントアプリケーションでのコードのモデルです。

テストのみ

CalculatorImplWS.wsdl

レジストリで公開するためにWebサービスをXMLで記述したもの。

このファイルは、calcパッケージディレクトリではなく、プロジェクトのsrcディレクトリに保存されます。

レジストリ

「Delegatorクラス」のCalculatorImplWSDelegateおよびCalculatorImplWSTieは、連係してソースオブジェクトをSOAP処理オブジェクトにバインドします。 Webサービスを生成するために、編集を行う必要はありません。

「バインド」は、WebサービスにアクセスするためのURLであり、スタブでのコードの一部です。 スタブをインスタンス化するクライアントコードで、このURLを上書きできます。

注記:   ウィザードをもう一度実行すると、これらのファイルはすべて再生成されます。 そのため、コードを変更しなければならない場合は、生成されたコードを編集する代わりに、Delegatorクラスを拡張するクラスを定義することをお勧めします。

ビジネス論理が記述されていない場合   実装の代わりにインタフェースでこのプロセスを開始した場合、つまり、CalculatorImpl.javaファイルが存在せずCalculatorImplWS.javaファイルのみがある場合は、この時点でビジネス論理を記述する必要があります。 CalculatorImplWSTieまたはCalculatorImplWS_ServiceTieSkeletonを拡張して、そこでビジネス論理を実装するか、別のクラスを記述して、CalculatorImplWSTieのターゲットがこのクラスを参照するよう設定できます。

 
Top of page

配備の準備

Workbenchでは、任意のJ2EEアプリケーションサーバのアーカイブを作成して、配備できます。 ここでの手順では、このチュートリアルアプリケーションを配備する場合に必要な情報について示します。 詳細およびサーバ固有の情報については、「 Workbenchの配備手順」を参照してください(独自のサーバツールを使用して配備することもできます)。

Webサービスを配備するには、次の手順を実行します。

  1. アーカイブを作成する。

  2. ウィザードにより配備記述子に挿入されたサーブレット情報を確認する。

  3. サーバプロファイルを作成する(Workbenchでサーバに他のアプリケーションを配備した場合は、すでに作成済み)。

  4. ランタイム配備情報でサーバ固有のファイルを作成する。

  5. Workbench配備設定を指定する。

  6. サーバに配備する。

 
Top of section

配備記述子について

プロジェクトを作成した際に、Workbenchで、選択したアーカイブのタイプに適するXML記述子ファイルが作成されました。 WARでは、このファイルはweb.xmlと呼ばれます。

web.xmlを編集用に開くと、配備記述子エディタにより、XML要素が展開可能なツリー構造で表示されます。 また、加工されていないXMLを表示することもできます。 エディタでは、プロジェクトのコンパイル済みコードを使用して、表示する内容を決定します。アーカイブを最初に作成するのはこのためです。 アーカイブをまだ作成していない場合は、Workbenchによるアーカイブの作成が提示されます。

 
Top of section

エクササイズ 2-7: アーカイブを作成する

このエクササイズでは、生成されたWSDLファイルをアーカイブのルートに含め、アーカイブを作成します。 レッスン 5, テスト方法では、WSDLファイルを含める理由について説明します。

  1. メニューから[Project]>[Add to Project]>[File]の順に選択します。

  2. [Add to Project]ダイアログボックスで、プロジェクトルート下でsrcディレクトリを検索し、[CalculatorImplWS.wsdl]を選択してから[Open]をクリックします。

  3. 2番目の[Add to Project]ダイアログボックスで、[Add the file to the root of the archive]をオンにして[OK]をクリックします。

    tut2-7AddWSDLtoProject

  4. Workbenchで、メニューから[Project]>[Build and Archive]の順に選択して、プロジェクトに対して配備可能なアーカイブを作成します。

 
Top of section

エクササイズ 2-8: 配備記述子を検査する

ウィザードは、Webサービスのメインサーブレットに関する情報を配備記述子に挿入します。 このエクササイズでは、その情報を確認して、今後必要が生じた場合にその情報を検索したり、変更したりできるようにします。

  1. ナビゲーションペインで、プロジェクトファイルCalculator.spfを右クリックして、ポップアップメニューから[Open Deployment Descriptor]を選択します。

    注記:   ソースビューまたはアーカイブビューでweb.xmlを検索し、ダブルクリックして開くこともできます。

    Workbenchで[Select Build Option]ダイアログボックスが表示された場合、デフォルトを受け入れて[OK]をクリックします。

    Workbenchにより、編集ペインでweb.xmlが開きます。 エディタには、[Descriptor]タブが表示され、記述子に含めることができる情報のタイプが示されます。

    tut2-9DeployDesc

  2. Servlets]見出しの[CalculatorImpl]項目は、ウィザードにより追加されています。

  3. CalculatorImpl]を右クリックして、ポップアップメニューから[Properties]を選択します。

    プロパティシートに、サーブレットの配備プロパティが表示されます。

    tut2-9DeployProps

  4. Servlet class]の値は、[calc.CalculatorImplWSTie]になっています。 これは、Webサービスの呼び出し時に実行するクラスです。

  5. 再び編集ペインで、[Servlet Mapping]セクションで[CalculatorImpl]項目を検索して選択します。

    今度はプロパティシートに、マッピングプロパティが表示されます。

    tut2-9DeployPropsMapping

  6. URL pattern]の値は、サーブレットの名前と同様に「CalculatorImpl」です。 この値は、WebサービスにアクセスするURLで使用します。

  7. エディタの右上隅にあるボタンをクリックするか、メニューから[File]>[Close]の順に選択して、配備記述子を閉じます。

 
Top of section

プロジェクトの配備

別のWorkbenchチュートリアルを完了している場合、ほとんどの配備設定はすでに完了しています。 このエクササイズでは、主な手順について説明し、このプロジェクトを配備する場合に必要なプロジェクト固有の情報を提供します。 すべてのサポートされたサーバに対する配備手順の詳細については、「 Workbenchの配備手順」を参照してください。

 
Top of section

エクササイズ 2-9: プロジェクトを配備する

  1. サーバのプロファイルを作成していない場合は、この時点でメニューから[Edit]>[Profiles]の順に選択して作成します。

    For more information    詳細については、配備手順で「 サーバプロファイルの手順」を参照してください。

  2. 次の情報を使用して、配備プロセスのサーバ固有の部分を作成します。

    大部分のJ2EEサーバでは、サーバ固有の配備情報は、通常XML形式で別のファイル内に保存されています。 一部のサーバでは、配備情報をプロジェクトに追加して、配備情報がアーカイブ内に組み込まれるようにする必要があります。

    For more information    詳細情報および詳細な手順を示したエクササイズについては、配備手順で ご使用のサーバの節を参照してください。

    サーバ

    操作

    指定する内容

    Novell exteNd Application Server(またはSilverStream eXtend Application Server)

    配備計画を作成します。 配備計画エディタで、Web Archive項目に対してプロパティシートで値を設定します。

    Enabled] - True

    Deployed object name] - Calculator

    Server Profile] - ドロップダウンリストボックスから定義したプロファイルを選択します。

    Session timeout] - 5分(デフォルト)

    URLs] - Calculator (デフォルト)

    Sun Reference Implementation

    右のコンテンツで、sun-j2ee-ri.xmlというランタイム配備記述子を作成します。 これをMETA-INFディレクトリに配置し、ファイルをプロジェクトに追加します。

      <?xml version="1.0" encoding="Cp1252"?>
      
      <j2ee-ri-specific-information>
        <server-name></server-name>
        <rolemapping />
        <web>
          <display-name>Calculator</display-name>
          <context-root>Calculator</context-root>
        </web>
      </j2ee-ri-specific-information>
    

    Jakarta Tomcat

    -

    -

    BEA WebLogic

    右のコンテンツで、weblogic.xmlというWebLogic記述子を作成します。 WEB-INFディレクトリで、これをプロジェクトに追加します。

      <!DOCTYPE weblogic-web-app PUBLIC "-//BEA
      Systems, Inc.//DTD Web Application 6.0//EN"
      "http://www.bea.com/servers/wls610/dtd/
      weblogic-web-jar.dtd">
      
      <weblogic-web-app>
         <description>
            Calculator Web Service
         </description>
         <weblogic-version>
         </weblogic-version>
      </weblogic-web-app>
    

    IBM WebSphere

    -

    -

    Oracle 9iAS

    -

    -

  3. メニューから[Project]>[Deployment Settings]の順に選択して、サーバの配備設定を指定します。

    Server Profiles]タブで、前で定義したサーバプロファイルを選択します。 セキュリティ保護されたサーバを使用している場合は、[User name]および[Password]の値を指定します。

    Deployment Info]タブで、追加のアプリケーション固有の情報を次のように指定します。

    注記:   このチュートリアルでは、[Enable Rapid Deployment]チェックボックスはオンにしないようにしてください。 サーバでの高速配備の使用法の詳細については、『ツールガイド』の「 アーカイブ配備」を参照してください。

    サーバ

    オプションおよび値

    Novell exteNd Application Server(またはSilverStream eXtend Application Server)

    Deployment Plan] - Step 2で定義した計画を選択します。

    Overwrite existing deployment] - オン

    Verbosity] - 3

    Ignore JSP compile errors] - オフ(配備時にJSPページが正常にコンパイルされない場合、アーカイブを配備しない)

    Sun Reference Implementation

    -

    Jakarta Tomcat

    -

    BEA WebLogic

    WebLogic Application Name] - Calculator。WebアプリケーションにアクセスするためのURLで使用します。

    IBM WebSphere

    Node Name] - 空白のまま残すか、サーバでセットアップしたノードを指定します。

    Oracle9iAS

    Deployment Name] - Calculator。WebアプリケーションにアクセスするためのURLで使用します。

    Target Path] - 空白のまま残すか、サーバでセットアップしたパスを指定します。

    Website Name] - デフォルト値を受け入れるか、サーバでセットアップした名前を指定します。

    For more information    詳細については、配備手順で ご使用のサーバの節を参照してください。

  4. [Deployment Settings]ダイアログボックスで[Deploy]をクリックします。

    または

    [Deployment Settings]で[OK]をクリックし、メニューから[Project]>[Deploy Archive]の順に選択します。

    Workbenchで、[Output]ペインの[Deploy]タブに進行状況を知らせるメッセージ、エラー、および警告が表示されます。

    ヒント:   大部分のサーバタイプでは、サーバが実行されていない場合、完全配備は失敗 します。 一部のサーバでは、配備後サーバを再起動する必要があります。 詳細については、 配備手順で ご使用のサーバの節を参照してください。

 
Top of page

J2EEサーバのクラスパスの更新

Webサービスを実行する前に、実行しなければならない作業がもう一つあります。配備したWARが、jBroker Webで必要な次のアーカイブにランタイムでアクセスできることを確認する必要があります。

このアクセスの設定方法は、使用するJ2EEサーバのタイプに応じて異なります。

次のいずれかのサーバに配備した場合、必要なJARをサーバのクラスパスに追加する必要があります(クラスパスへの追加の詳細については、ご使用のサーバのマニュアルを参照してください)。

Novell exteNd Application Serverに配備した場合は、サーバのクラスパスにJARを追加する必要はありません(このサーバでは、JARがWARのWEB-INF/libディレクトリ内にあるだけで十分です)。

 
Top of page

Webサービスのテスト

Web Serviceウィザードは、Webサービスをテストする目的でJavaクラスを生成します。 テンプレートコードに変更を加えた後、プログラムを実行して、処理される内容を確認できます。

 
Top of section

エクササイズ 2-10: テストクライアントコードを編集する

  1. ナビゲーションペインで、CalculatorImplWSClient.javaを検索し、ダブルクリックしてエディタ内に開きます。 これは、ソースレイアウトではsrc/calcディレクトリ下、アーカイブレイアウトではWEB-INF/classes/calcディレクトリ下にあります。

  2. process()メソッド内で、4つのコメント付きのSystem.out.println()ステートメントを次のコードで置き換えます。 getRemote()への呼び出しは削除しないでください。

    この新しいコードは、コマンドラインから引数を取得して(またはデフォルト値を使用して)、CalculatorImplメソッドを呼び出します。

      double x, y;
      if (args.length == 2)
      {
          x  = new Double(args[0]).doubleValue();
          y  = new Double(args[1]).doubleValue();
      }
      else 
      {
          x = 4.0;
          y = 5.0;
      }
      System.out.println("Add      = " + remote.add(x, y));
      System.out.println("Divide   = " + remote.divide(x, y));
      System.out.println("Multiply = " + remote.multiply(x, y));
      System.out.println("Subtract = " + remote.subtract(x, y));
    
  3. メニューから[Project]>[Compile]の順に選択し、ファイルを保存してコンパイルします。

  4. ファイルを閉じます。

 
Top of section

エクササイズ 2-11: 生成したクライアントを使用してWebサービスをテストする

  1. メニューから[Project]>[Run Web Service Client Class]の順に選択します。

    [Web Service Wizard Client Runner]ウィンドウの選択リストに、テストクライアントクラスが表示されます。 プロジェクトにmain()メソッドを使用した他のコンパイル済みクラスが含まれる場合、それらのクラスも表示されます。

  2. Arguments]テキストボックスに、Calculatorの算術演算に対する入力となる2つの数値を入力します。 たとえば、次のように入力します。

    4.0 5.5

  3. Run]をクリックします。

    System.out.println()メソッドからの出力が、出力ボックスに表示されます。

    tut2-12RunClient

  4. 完了したら、[Close]をクリックします。

    以上で作業は完了です。 Webサービスを正しく配備してテストしました。

 
Top of page

実行した内容のまとめ

アプリケーションの開発   このレッスンでは、基本的な算術に対して複数のメソッドを提供するWebサービスのWARを作成して配備しました。 生成したクライアントプログラムのコードを編集し、クライアントを実行してWebサービスをテストしました。

Workbenchツールの使用   Workbenchで、次のツールを使用しました。

次のレッスン   次のレッスンでは、Webサービスを記述するWSDLファイルから、クライアントコードを生成する方法について学習します。

    First Previous Next Last チュートリアル : WEBサービスの操作  05/19/03 09:50:45 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.