連載
» 2003年05月21日 00時00分 公開

統合開発環境でWebサービスを作るパソコンで試してわかるWebサービス(8)(3/4 ページ)

[イチロー,樋口研究室監修]

Webプロジェクトの作成

 早速JavaBeansのWebサービス化を始めましょう。まずは、Webサービス・プロバイダの作業です。

 何度も解説してきましたが、JavaBeans版WebサービスはServletアプリケーションです。J2EE的にいえば「Webコンテナで稼働するJ2EEアプリケーション」ということになります。WSADではそのままJ2EEアプリケーションとして開発を進めることになります。

 最初に、J2EEアプリケーションを開発するプロジェクトを作成します。

(1)「J2EEパースペクティブ」を選択します

(2)「J2EEナビゲーター」を選択します

(3)「ファイル」−「新規」−「Webプロジェクト」を選択します

(クリックすると拡大します) (クリックすると拡大します)

 Webプロジェクトのウィザードが起動したら次に進みましょう。この画面では「Webコンテナアプリケーション用プロジェクト」を作成しています。

(4)プロジェクト名に「JavaBeansWebServiceWeb」と入力し、「次へ」ボタンを押します

(クリックすると拡大します) (クリックすると拡大します)

 Webプロジェクトは、必ずJ2EEプロジェクト(エンタープライズ・アプリケーション・プロジェクト)が必要です。次の画面では、この「J2EEアプリケーション用プロジェクト」を作成します。

(5)新規プロジェクト名に「JavaBeansWebService」と入力し、「終了」ボタンを押します

 これでプロジェクト作成は終了です。次の図のように2つのプロジェクトができていればOKです。

(クリックすると拡大します) (クリックすると拡大します)

J2EEアプリケーションのパッケージについて

 今回の開発においてはJ2EEアプリケーションを少し意識して開発を進める必要があります。この部分は開発者にとって多少面倒であり、不自由を感じるところでもあります。そのため、少しだけJ2EEアプリケーションのパッケージについて解説しておきます。

 J2EEでは、最終的に「EARファイル」というパッケージ形式でアプリケーション・サーバに配置(Deploy)します。このEARファイルには、Webアプリケーション・パッケージの「WARファイル」やEJBパッケージの「EJB-JAR」などが含まれます。個々のクラスファイルや定義用XMLファイルなどはWARファイルやEJB-JARファイルの中に含まれています。

 前の図において「JavaBeansWebService」と「JavaBeansWebServiceWeb」は並列に表示されています。しかし、実際にはJ2EEパッケージ用プロジェクト(エンタープライズ・アプリケーション・プロジェクト)である「JavaBeansWebService」の中にWebアプリケーション用プロジェクトである「JavaBeansWebServiceWeb」が含まれています。これを確認するには左側ツールバーの「J2EEパースペクティブ」ボタンを押して、「J2EE階層」を開いてみてください。

 「エンタープライズ・アプリケーション」の中に「JavaBeansWebService」が含まれています。それをさらに開いていくとWebアプリケーションの「JavaBeansWebServiceWeb.war」が含まれています。すなわち最終的にアプリケーション・サーバへ配置するときはJ2EEプロジェクトである「JavaBeansWebService」のみを持っていけばいいことが分かります。

アプリケーション・サーバへ配置するときはJ2EEプロジェクトである「JavaBeansWebService」のみを持っていけばよい(クリックすると拡大します) アプリケーション・サーバへ配置するときはJ2EEプロジェクトである「JavaBeansWebService」のみを持っていけばよい(クリックすると拡大します)

JavaBeansの作成

 さて、話を戻して先に進みましょう。今回は第7回まで利用してきたJavaBeansをそのまま使います。すでにプログラムがある場合はそれをインポートすればいいのですが、今回は新規にJavaBeansを作ってみます。

(1)左のツールバーから「Webパースペクティブ」を選択します

(2)「JavaBeansWebServiceWeb」から「Java Source」を選んで、マウスで右クリックして「新規」−「クラス」を選択します

(クリックすると拡大します) (クリックすると拡大します)

 ここで、新規クラスを作成するウィザードが起動します。

(3)パッケージに「atmarkit」、名前に「SimpleAddBean」と入れて「終了」ボタンを押します

 ここで、Javaクラスのソースコード・エディタが出てきます。さて、ここで統合開発環境の便利な機能を使ってみます(ちょっと寄り道です)。

 SimpleAddBean.java(第3回参照)では2つのインスタンス変数をprivateで宣言し、そのアクセッサ(Setter/Getter)を作りました。統合開発環境ではこのような部分は自動的に作ることができます。

(4)まず、2つのインスタンス変数をクラス内に記述します

private int resultValue;
private int inputValue;  

(5)エディタ上の適当なところでマウスの右クリックをし、「ソース」「GetterおよびSetterの生成」を選択します

(6)Getter/Setterを作成したい変数を選択し、OKを押します

 これで、アクセッサが自動作成されました。ソースコードが自動的に追加されているのが確認できましたか?

 あとは、下記の部分(コンストラクタとaddメソッド)を追加するだけです。

public SimpleAddBean(){
  resultValue = 0;
  inputValue = 0;
  System.out.println("SimpleAddBeanがインスタンス化されました!");
}
    public void add() { 
      resultValue = resultValue + inputValue;
    } 

 ソースコードがすべて記述できたら、保存(Ctrl+S)してください。エラーは表示されていませんか? エラーがある場合は、エラー行に赤いエラーマークが付いて、下部の「タスク」にその内容が表示されます。これでJavaBeansが用意できました。ソースコードが書けたら次はテストです。

JavaBeansのテスト

 第3回「JavaBeansからWebサービスを作る」でJavaBeansを作成した際には、テスト用Javaアプリケーション(SimpleAddTest.java)を作ってJavaBeansをテストしました。WSADでも、同じようにJavaアプリケーションを作成して実行することも可能ですが、それではあまり統合開発環境の意味がありません。

 WSADでは、主に次のような単体テスト方法が可能です。

  1. 汎用テスト・クライアントによる手動テスト
  2. JUnitによる自動テスト

 ここでは、1の汎用テスト・クライアントを利用してみます。J2EEナビゲーター内の「SimpleAddBean.java」にてマウスの右クリックをして、「汎用テスト・クライアントを起動」を選択します。初めて実行する場合は少し時間がかかりますが、しばらくするとWSAD内にWebブラウザが起動され、次のようなツールが起動します。

テストツールの画面(クリックすると拡大します) テストツールの画面(クリックすると拡大します)

 この汎用テスト・クライアントの動作は、この後多くの場面で出てきますので、ここでは少し詳しく説明していきましょう。基本的には第3回のテスト用Javaアプリケーションのソースコードに書き込んだ手順と同じ操作をこの汎用テスト・クライアントに向かってやることになります。

 テストするJavaBeansはすでにインスタンス化され、「オブジェクト参照」の中に「SimpleAddBean@xxxx」として現れています。これは、Javaアプリケーションでは「new」を使ってインスタンス化することに相当します。

 このインスタンスをさらに開くとメソッドが現れます。メソッドの操作は次のように行います。まず、実行するメソッドをクリックします。右側のウィンドウに「パラメーター」が現れます。この「値」にメソッドの引数を設定し、「起動」を押します。実行した結果は最下部に表示されます。

 上述の操作が1つのメソッドを実行する手順になります。これをテスト用Javaアプリケーション(第3回)のように実行していくことで、JavaBeansをテストすることができます。

 この汎用テスト・クライアントですが、Webブラウザで表示されています。このプログラムはアプリケーション・サーバ上で起動しています。汎用テスト・クライアントの下のウィンドウの「サーバー」タブを開いてみてください。「WebSphere v5.0テスト環境」が稼働していることが分かります。JavaBeansのテストが終了したら、このサーバを停止しておくといいでしょう。開始しているサーバを右クリックして「停止」を選択することでアプリケーション・サーバが停止します。また後ほど実行することがありますので、ここでは、一度停止しておいてください。また、汎用テスト・クライアントが表示されているWebブラウザも閉じておいてください。

 この汎用テスト・クライアントでは、単体テストは開発者が毎回操作をする必要があります。何度もJavaBeansを変更し何度もテストを行う場合は、このテスト方法では面倒です。このような場合は、「JUnitによる自動テスト」を実施します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。