すべてのJavaメソッドはWebサービスとして公開できます。JDeveloperはJavaクラスとそのメソッドからWebサービスを作成するためのウィザードを提供しています。
Webサービスのアノテーションを手動でJavaクラスに追加する代わりに、JDeveloperのウィザードを使用して管理することができます。ウィザードによってWebサービスのアノテーションが追加され、開発者はWebメソッドとして公開するメソッドを選択できます。この方法を利用すると、既存のJavaクラスを簡単にWebサービスに変換できます。
この項では、前述の項と同様に、新規プロジェクトとJavaクラスを作成します。このシナリオでは、アノテーションを手動で追加する代わりにウィザードを使用してWebサービスを作成します。ウィザードにより、クラスをWebサービスとして使用するために必要なすべてのアノテーションが作成されます。ウィザードの手順が終了した後で、前項と同様にHTTP Analyzerを使用して、統合サーバーを使用したWebサービスのテストを行います。
-
空のプロジェクトを新規に作成します。「Annotation」プロジェクト・ノードを右クリックし、「New」→「From Gallery」を選択します。New Galleryで、Categoriesリストから「General」→「Projects」を選択し、Itemsリストから「Custom Project」を選択します。「OK」をクリックします。
-
Create Projectダイアログで、プロジェクトにWizardという名前をつけて、「Finish」をクリックします。
-
アプリケーション・ナビゲータで、「Wizard」プロジェクトを右クリックして、コンテキスト・メニューから「New」を選択します。
-
New Galleryで、Categoriesリストから「General」→「Java 」を選択し、Itemsリストから「Class」を選択します。「OK」をクリックして新しいJavaクラスを作成します。
-
クラスにHelloServiceという名前をつけます。デフォルトでは、パッケージ名がプロジェクト名になります。パッケージ名がwizardと指定されていることを確認します。残りの値はデフォルトのままにして「OK」をクリックし、クラスを作成してコード・エディタで開きます。
-
次のメソッドをクラスに追加します。
public String sayHello (String s) {
return "Hello " + s;
}
-
「
」Save Allをクリックして作業内容を保存します。
この時点では、Helloという単語の後に引数値を返す、非常にシンプルなビジネス・ロジックをもつクラスを作成したに過ぎません。
![新しいメソッドを追加したJavaエディタ](images/p2s0106.gif)
-
アプリケーション・ナビゲータで「HelloService.java」を右クリックし、「Create Web Service」を選択します。これにより、Webサービスとしてクラスを作成するウィザードが起動します。
-
Create Java Web ServiceウィザードのSelect Deployment Platformステップで、デプロイメント・プラットフォームとしてJava EE 6, with support for JAX-WS Annotationsが選択されていることを確認し、「Next」をクリックします。
-
ウィザードのGeneration OptionsステップでWeb Service NameにMyWebService1と入力し、Port NameにMyWebService1Portが設定されていることを確認します。「Next」をクリックします。
-
ウィザードのMessage Formatステップで「SOAP 1.2 Binding」を選択し、「Next」をクリックします。
-
ウィザードのMethodsステップにすべての公開可能なメソッドが表示され、開発者は公開するメソッドを選択できます。このケースではメソッドが1つしかないため、デフォルトでこのメソッドが選択されています。残りのページでは、サービスに必要な追加クラスの指定、サービスのポリシーの設定、ハンドラの詳細の指定を行います。
今回はこれらの値を変更しないため、いずれかのスクリーンで「Finish」をクリックしてWebサービスを作成します。
-
クラス定義は更新され、Webサービスの公開に必要なアノテーションが追加されています。ポート名がMyWebService1Portに設定されていることを確認します。この名前になっていない場合はエディタで変更します。
-
「
」Save Allをクリックして作業内容を保存します。
この項では、Webサービスのコンパイル、デプロイ、およびテストを行います。前述の項と同様に、HTTP Analyzerを使用してWebサービスのテストを行います。アナライザを使用してWebサービスをテストする場合、サービスは自動的にコンパイルされ、統合サーバーにデプロイされます。次にアナライザが起動され、Webサービスへの値の送受信が可能になります。
-
アプリケーション・ナビゲータでWizardプロジェクトの「HelloService.java」を右クリックし、コンテキスト・メニューから「Test Web Service」を選択します。
これにより、統合サーバーの起動とサービスのデプロイがおこなわれ、アナライザが開始されます。統合サーバーを初めて実行する場合、開始に数秒かかる場合があります。
前述の項と同様に、HTTP Analyzerエディタの上部にはWebサービスのURL、WSDL URL、および公開される操作が表示されます。
-
リクエスト領域で、arg0フィールドに<あなたの名前>を入力して、「Send Request」をクリックします。
アナライザによってサービスにリクエストが送信され、数秒後に、戻りパラメータが表示されます。
ここまでで、JDeveloperのウィザードを使用して、WebサービスにJavaクラスのアノテーションを追加しました。これはボトムアップ手法でWebサービスを作成した例であり、はじめにJavaクラスを作成してから、これをWebサービスに変換しました。場合によっては、使用するWebサービスがあらかじめ存在することがあります。これはトップダウン手法の例になります。次の項では、既存のWebサービスを消費する方法を確認します。 -
WSDLファイルからWebサービスを作成するタスクの準備として、WSDLをファイルに生成します。アプリケーション・ナビゲータで「HelloService.java」クラスを右クリックして、「Show WSDL for Web Service Annotations」を選択します。
WSDLファイルの生成が開始され、設計エディタにMyWebService1.wsdlが表示されます。ノードを開いて選択すると、フローが視覚化できます。
-
「Imports」をクリックすると、WSDLが使用するその他のアーチファクトが表示されます。ここでは、MyWebService1_schema1.xsdが使用されています。
-
ドロップダウン・リストから「MyWebService1_schema1.xsd」を選択します。
-
ビジュアル・エディタ・ウィンドウにスキーマ・ドキュメントが開き、定義された要素間の関係が表示されます。
-
メニューから「File」→「Save As...」を選択します。
アプリケーションのルート・ディレクトリ(WebServicePractice)にファイルを保存します。
-
「MyWebService1.wsdl」を選択し、MyWebService1_schema1.xsdファイルと同じディレクトリに保存します。
-
MyWebService1.wsdlファイルを保存した場所に移動し、ワードパッドまたはテキスト・エディタでこのファイルを開きます。
-
ファイルを確認したら、テキスト・エディタ・ウィンドウを閉じます。
-
エディタ内ですべてのタブを閉じ、アプリケーション・ナビゲータで「Wizard」ノードを閉じます。
![ブックマーク](../_image/bookmark.png)
![印刷](../_image/print_ena.png)