NetBeans を使用した単純な SOA アプリケーションの作成
執筆および管理
Sherry Barkodar
、
Bob May
2007 年 10 月 [リビジョン番号: V1--3]
このページは、NetBeans IDE 6.0 リリースに適用されます
このチュートリアルでは、単純な SOA プロジェクトを作成します。次にこのプロジェクトに WSDL ドキュメントを追加し、WSDL エディタのパートナービューを使用してメッセージ、パートナーリンク型、ポート型、および操作を追加します。複合アプリケーションプロジェクトを作成し、複合アプリケーション (サービスアセンブリ) エディタを使用してプロジェクト構成を変更します。このチュートリアルでは、複合アプリケーションでファイル結合コンポーネントを使用する基本的なシナリオも説明します。
予想される所要時間: 45 分
目次
チュートリアルの要件
次に進む前に、この節の要件を確認してください。
前提条件
このチュートリアルでは、Java 言語、Java プラットフォーム、および NetBeans IDE の基本的な知識またはプログラミング経験があることを前提としています。
このチュートリアルに必要なソフトウェア
始める前に、NetBeans IDE 6.0 をコンピュータにダウンロードしてインストールする必要があります。これは NetBeans IDE 6.0 ダウンロードページの「すべて」のダウンロードに含まれます。 ダウンロードオプションの「すべて」には、このチュートリアルに必要な SOA Pack と GlassFish V2 アプリケーションサーバーが含まれています。
ページの先頭へ
GlassFish アプリケーションサーバーの構成と起動
NetBeans 6.0 の完全版のダウンロードをインストールすると、GlassFish アプリケーションサーバーが含まれます。NetBeans は、必要なときに、自動的にアプリケーションサーバーを起動します。
GlassFish アプリケーションサーバーを起動するには、次の手順に従います。
「サービス」ウィンドウが表示されていない場合は、「ウィンドウ」>「サービス」を選択します。
「サービス」ウィンドウで「サーバー」ノードを展開します。
「サーバー」ノードに GlassFish アプリケーションサーバーのサブノードが含まれるはずです。GlassFish アプリケーションサーバーのノードが表示されない場合は、GlassFish アプリケーションサーバーを構成する 手順へ進んでください。
GlassFish アプリケーションサーバーのノードを右クリックし、「起動」を選択します。
「出力」ウィンドウに、アプリケーションの起動に関するログ情報が表示されます。「出力」ウィンドウが表示されていない場合は、「ウィンドウ」>「出力」>「出力」を選択します。
「Application server startup complete」というメッセージが「出力」ウィンドウに表示されたら、アプリケーションサーバーは実行中です。
注: GlassFish アプリケーションサーバーのノードに緑色の矢印のバッジが表示されていれば、そのサーバーは実行中です。
注 : アプリケーションを GlassFish アプリケーションサーバーに配備すると、GlassFish アプリケーションサーバーを自動的に起動します。アプリケーションサーバーを手動で起動する必要はありません。
注: 次の手順は、GlassFish V 2 アプリケーションサーバーの別のバージョンを使用するように NetBeans 6.0 IDE を構成する方法を示しています。
GlassFish V2 アプリケーションサーバーを構成する
NetBeans 6.0 に付属のアプリケーションサーバーとは別のバージョンを使用したいことがあるでしょう。たとえば、GlassFish V2 アプリケーションサーバーの最新バージョンを GlassFish コミュニティー のサイトからダウンロードし、インストールしたい場合です。
次の手順は、GlassFish V2 アプリケーションサーバーの別のバージョンを使用するように NetBeans 6.0 IDE を構成する方法を示しています。アプリケーションサーバーの別のバージョンをすでにダウンロードし、インストールしてあることを前提としています。
「サービス」ウィンドウで「サーバー」ノードを右クリックし、ポップアップメニューから「サーバーを追加」を選択します。
「サーバーインスタンスの追加」ダイアログが開きます。
「サーバーを選択」ページで、「サーバー」ドロップダウンリストから「GlassFish V2」を選択します。
「次へ」をクリックします。
「プラットフォームフォルダの場所」ページが開きます。
「プラットフォームの場所」フィールドの「参照」ボタンを使用して、アプリケーションサーバーのインストール場所に移動して、選択します。
GlassFish アプリケーションサーバーをデフォルトの場所にインストールした場合、表 1 をインストール場所の参考にしてください。さもなければ、GlassFish V2 アプリケーションサーバーをインストールした場所を指定してください。
表 1: アプリケーションサーバーのデフォルトのインストールディレクトリ
Solaris OS
Linux
root
/opt/SUNWappserver
/opt/SDK
Solaris OS
Linux
ユーザー
~/SUNWappserver
~/SDK
Mac OS X
N/A
~/SUNWappserver
~/SDK
Windows
N/A
C:\Sun\AppServer
C:\Sun\SDK
「ローカルのデフォルトドメインを登録」ラジオボタンを選択し、「次へ」をクリックします。
ドメインの管理者のユーザー名とパスワードを入力します。
インストール時にデフォルト値をそのまま使用した場合、ユーザー名は「admin」で、パスワードは「adminadmin」です。
「完了」をクリックします。
ページの先頭へ
BPEL モジュールプロジェクトの作成
この節では、HelloSample という BPEL モジュールプロジェクトを作成します。
プロジェクトを作成するには、次の手順に従います。
メインメニューから「ファイル」>「新規プロジェクト」を選択します。
「新規プロジェクト」ウィザードが開きます。
「カテゴリ」リストで「SOA 」ノードを選択します。
「プロジェクト」リストで、「BPEL モジュール」ノードを選択します。
「次へ」をクリックします。
「プロジェクト名」フィールドに「HelloSample 」と入力します。
(省略可能)「プロジェクトの場所」フィールドで、「参照」ボタンを使用して移動し、IDE がプロジェクトファイルを格納する別のフォルダを選択します。
「完了」をクリックします。
この時点で、「プロジェクト」ウィンドウに、HelloSample という BPEL モジュールプロジェクト用のプロジェクトノードが含まれます。
ページの先頭へ
WSDL ドキュメントの作成
この節では、WSDL ドキュメント HelloSample.wsdl を BPEL モジュールプロジェクトに追加し、WSDL エディタのパートナービューを使用して、WSDL ドキュメントのコンポーネントを構成します。
WSDL ドキュメントを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで「HelloSample 」プロジェクトノードを展開して「プロセスファイル 」ノードを右クリックし、「新規」>「WSDL ドキュメント」を選択します。
「新規 WSDL ドキュメント」ウィザードが開きます。
「ファイル名」フィールドに「HelloSample 」と入力します。
「完了」をクリックします。
「プロジェクト」ウィンドウで、IDE によって「HelloSample.wsdl 」ノードが「プロセスファイル 」ノードの下に追加されます。
HelloSample.wsdl ファイルが WSDL エディタで開きます。
WSDL エディタには、ソース、WSDL、およびパートナーの 3 つのビューがあります。
WSDL エディタの詳細については、WSDL エディタ開発者ガイド を参照してください。
「プロパティー」ウィンドウが開きます。
「プロパティー」ウィンドウが表示されない場合、「ウィンドウ」>「プロパティー」を選択します。
「ナビゲータ」ウィンドウが開きます。
メッセージを追加するには、次の手順に従います。
WSDL ビューで、「パートナー」ボタンをクリックして WSDL エディタのパートナービューを開きます。
エディタがパートナービューに切り替わり、「パレット」が開きます。
「パレット」ウィンドウが表示されていない場合は、メインメニューから「ウィンドウ」>「パレット」を選択します。
「パレット」の「WSDL コンポーネント」セクションで、「メッセージ」アイコンを選択します。
選択した項目を、パートナービューのデザイン領域の、メッセージ領域 (デザイン領域の下のほう) にドラッグします。
IDE によって message1 というメッセージが追加されます。
注: 部品名、部品の要素、または種類列が表示されない場合、message1 ボックスの下矢印をクリックしてボックスを展開します。
message1 の「部品名」列で、デフォルト値 part1 をダブルクリックし、フィールドを編集可能にします。
「 inputType 」と入力し、Enter キーを押します。
message1 の部品の要素または種類列で、省略符号ボタンをクリックし、表示されたダイアログボックスで「組み込まれたスキーマタイプ 」を展開し、「string 」を選択して「了解」をクリックします。
手順 2 から 6 を繰り返して別のメッセージ message2 を作成し、部品名として resultType を使用します。
実行後、デザイン領域は次に示す図と似たようなものになるはずです。
パートナーリンク型を追加するには、次の手順に従います。
「パレット」の「WSDL コンポーネント」セクションで、「パートナーリンク型」アイコンを選択します。
選択項目を、デザイン領域のパートナーリンク型 (デザイン領域の上の部分) にドラッグします。
IDE が partnerlinktype1 というパートナーリンク型を追加します。これで、新しいロールとポート型を作成できます。ロールとポート型は、最上位に外部名を表示した、縦破線として描画されます。
partnerlinktype1 ボックスで、role1 の下にあるボックスをダブルクリックします。
これによってポート型が編集可能になり、デフォルト値 portType1 がフィールドに表示されます。
Enter キーを押します。
新しい portType1 が割り当てられます。
「パレット」の「WSDL コンポーネント」セクションで、「要求-応答」アイコンを選択します。
選択した項目を、デザイン領域の portType1 の下にドラッグします。
IDE が operation1 という操作を追加します。
operation1 で、<No Message Selected> というラベルの付いた、メッセージの実線矢印を選択します。
「プロパティー」ウィンドウの「メッセージ」ドロップダウンリストで、tns:message1 を選択します。
ラベルが message1 に変更されます。
operation1 で、<No Message Selected> というラベルの付いた、メッセージの点線矢印を選択します。
「プロパティー」ウィンドウの「メッセージ」ドロップダウンリストで、tns:message2 を選択します。
ラベルが message2 に変更されます。
これらの手順を終了すると、デザイン領域は次に示す図と似たようなものになるはずです。
ページの先頭へ
BPEL プロセスの作成
この節では、BPEL プロセスファイル HellpSample.bpel を追加します。次に、パートナーリンク 1 つと、アクティビティー 3 つを BPEL プロセスファイルに追加します。
BPEL プロセスファイルを作成するには、次の手順に従います。
「プロジェクト」ウィンドウで「HelloSample 」プロジェクトノードを展開して「プロセスファイル 」ノードを右クリックし、「新規」>「BPEL プロセス」を選択します。
「新規 BPEL プロセス」ウィザードが開きます。
「ファイル名」フィールドに「HelloSample 」と入力します。
「完了」をクリックします。
「プロジェクト」ウィンドウで、IDE によって「HelloSample.bpel 」ノードが「プロセスファイル 」ノードの下に追加されます。
HelloSample.bpel ファイルが BPEL デザイナーで開きます。
BPEL デザイナーには、ソースとデザインの 2 つのビューがあります。
BPEL デザイナーの詳細については、BPEL デザイナー開発者ガイド を参照してください。
「プロパティー」ウィンドウが開きます。
「プロパティー」ウィンドウが表示されない場合、「ウィンドウ」>「プロパティー」を選択します。
BPEL プロセスドキュメントの BPEL 論理ビューを示す、「ナビゲータ」ウィンドウが表示されます。
IDE ウィンドウは次のようになります。
パートナーリンクを追加するには、次の手順に従います。
「パレット」の「Web サービス」セクションで、パートナーリンクアイコンを選択し、選択したアイコンをデザイン領域までドラッグします。
「新規作成 パートナーリンク」ダイアログが開きます。
デフォルト (名前: PartnerLink1 、WSDL ファイル: /HelloSample.wsdl 、「既存のパートナーリンク型を使用」ラジオボタン選択) を受け入れ、「了解」をクリックします。
IDE によってパートナーリンクがデザイン領域に追加されます。
受信アクティビティーを追加するには、次の手順に従います。
「パレット」の「Web サービス」セクションで、「受信」アイコンを選択します。
選択項目を、デザイン領域の、Process Start と Process End アクティビティーの間にある「HelloSample 」ボックスにドラッグします。
選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
このアクションにより、デザインビューに Receive1 という受信アクティビティーが配置されます。
Receive1 アクティビティーをダブルクリックします。
「Receive1 [受信] - プロパティーエディタ」が開きます。
「メイン」タブで、「パートナーリンク」ドロップダウンリストから PartnerLink1 を選択します。
「操作」フィールドは IDE によって operation1 と記入されます。
次の手順に従って、新しい入力変数を作成します。
「入力変数」フィールドの隣の「作成」ボタンをクリックします。
「新規入力変数」ダイアログが開きます。
「名前」フィールドの値を inputVar に変更します。
「了解」をクリックします。
「了解」をクリックして「Receive1 [受信] - プロパティーエディタ」を閉じます。
デザインビューに、PartnerLink1 の operation1 と Receive1 アクティビティー間の接続が表示されます。
返信アクティビティーを追加するには、次の手順に従います。
「パレット」の「Web サービス」セクションで、「返信」アイコンを選択します。
選択項目を、デザイン領域の、Receive1 アクティビティーと Process End アクティビティーの間にドラッグします。
選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
このアクションにより、デザインビューに Reply1 という返信アクティビティーが配置されます。
Reply1 アクティビティーをダブルクリックします。
「Reply1 [返信] - プロパティーエディタ」が開きます。
「メイン」タブで、「パートナーリンク」ドロップダウンリストから PartnerLink1 を選択します。
「操作」フィールドは IDE によって operation1 と記入されます。
次の手順に従って、新しい出力変数を作成します。
「正常応答」ラジオボタンが選択されているかを確認してください。
「出力変数」フィールドの隣の「作成」ボタンをクリックします。
「新規出力変数」ダイアログが開きます。
「名前」フィールドの値を outputVar に変更します。
「了解」をクリックします。
「了解」をクリックして「Reply1 [返信] - プロパティーエディタ」を閉じます。
デザインビューに、PartnerLink1 の operation1 と Reply1 アクティビティー間の接続が表示されます。
代入アクティビティーを追加するには、次の手順に従います。
「パレット」の「基本アクティビティー」セクションで、「代入」アイコンを選択します。
選択項目を、デザイン領域の、Receive1 アクティビティーと Reply1 アクティビティーの間にドラッグします。
このアクションにより、デザインビューに Assign1 という代入アクティビティーが配置されます。
Assign1 アクティビティーを選択します。
「BPEL マッパー」ウィンドウが表示されない場合は、メインメニューから「ウィンドウ」>「その他」>「BPEL マッパー」を選択します。
BPEL マッパーのソースツリー区画 (左側の区画)で、「変数」の下の「inputVar 」ノードを展開します。
「inputType 」ノードが「inputVar 」ノードの下に表示されます。
BPEL マッパーの宛先ツリー区画 (右側の区画)で、「変数」の下の「outputVar 」ノードを展開します。
「resultType 」ノードが「outputVar 」ノードの下に表示されます。
ソースツリー区画で、「inputType 」ノードを選択し、選択項目を宛先ツリー区画の「resultType 」ノードにドラッグします。
この割り当てにより、入力文が出力へコピーされます。
変更を保存するには、「プロジェクト」ウィンドウで「HelloSample 」プロジェクトノードを選択し、メインメニューから「ファイル」>「すべてを保存」を選択します。
ページの先頭へ
BPEL モジュールプロジェクトを配備する前に、JBI モジュールを配備プロジェクトに追加する必要があります。プロジェクトを配備すると、アプリケーションサーバーがサービスアセンブリを使用できるようになり、サービスユニットが実行可能になります。
複合アプリケーションプロジェクトを作成するには、次の手順に従います。
メインメニューから「ファイル」>「新規プロジェクト」を選択します。
「新規プロジェクト」ウィザードが開きます。
「カテゴリ」リストで「SOA 」ノードを選択します。
「プロジェクト」リストで、「複合アプリケーション」ノードを選択します。
「次へ」をクリックします。
「プロジェクト名」フィールドに「SampleCompositeApp 」と入力します。
「完了」をクリックします。
この時点で、「プロジェクト」ウィンドウに、SampleCompositeApp という複合アプリケーションプロジェクト用のプロジェクトノードが含まれます。
ページの先頭へ
この節では、複合アプリケーション (サービスアセンブリ) エディタを使用してプロジェクトの構成を変更し、BPEL モジュールプロジェクトを構築します。WSDL 終了点および接続をそれぞれ 1 つ追加し、自動生成された WSDL 終了点のプロパティーを、妥当性検査して変更します。
複合アプリケーション (サービスアセンブリ) エディタを使用してプロジェクトの構成を変更し、BPEL モジュールプロジェクトを構築するには、次の手順に従います。
「プロジェクト」ウィンドウで「SampleCompositeApp 」プロジェクトノードを選択し、ポップアップメニューから「アプリケーション構成を編集」を選択します。
IDE によって、複合アプリケーション (サービスアセンブリ) エディタで「.casa 」ファイルが表示されます。エディタのデザインビューのデザイン領域には、WSDL ポート、JBI モジュール、外部モジュールの 3 つの部分があります。
「プロジェクト」ウィンドウで「HelloSample 」プロジェクトノードを選択し、選択した項目を「SampleCompositeApp.casa 」ファイルのデザインビューにある JBI モジュール領域にドラッグします。
エディタのツールバーで「プロジェクトを構築」ボタンをクリックし、HelloSample BPEL モジュールプロジェクトを構築します。
この手順が完了すると、
ステータスバーに次のメッセージが表示されます。
Finished building build.xml (jbi-build).
「出力」ウィンドウは次のようになります。
SampleCompositeApp.casa ファイルのデザインビューは、次のようになります。
WSDL 終了点を作成するには、次の手順に従います。
「パレット」の「WSDL 結合」セクションで、ファイルアイコンを選択します。
選択した項目を、SampleCompositeApp.casa ファイルのデザインビューにある WSDL ポート領域にドラッグします。
IDE によって casaPort1 というラベルの WSDL ポートが追加されます。
接続を作成するには、次の手順に従います。
デザインビューの「casaPort1 」ポートで、消費終了点アイコンをクリックします。
終了点を選択すると、アイコンの色が変化します。
選択した項目を、JBI モジュール領域の (BPEL) HelloSample ボックスにある role1_myRole にドラッグします。
新しい接続が作成されます。
自動生成された WSDL 終了点のプロパティーを妥当性検査して変更するには、次の手順に従います。
「ナビゲータ」ウィンドウが表示されていない場合は、メインメニューから「ウィンドウ」>「ナビゲート」>「ナビゲータ」を選択します。
「ナビゲータ」ウィンドウで、ドロップダウンリストから「論理ビュー」を選択します。
「WSDL ポート 」>「casaPort1 」>「casaBinding1 」>「operation1 」>「input1 」を展開し、「file:message 」ノードを選択します。
「プロパティー」ウィンドウが表示されない場合は、メインメニューから「ウィンドウ」>「プロパティー」を選択します。
「プロパティー」ウィンドウに、「ナビゲータ」ウィンドウで選択した「file:message 」ノードのプロパティーが表示されます。
「プロパティー」ウィンドウで、次に示す値に一致するプロパティーを変更します。
use
literal
fileName
input.txt
pollingInterval
5000
「ナビゲータ」ウィンドウで、「WSDL ポート 」>「casaPort1 」>「casaBinding1 」>「operation1 」>「output1 」を展開し、「file:message 」ノードを選択します。
「file:message 」の「プロパティー」ウィンドウで、「fileName 」プロパティーに「output.txt 」を割り当てます。
「ナビゲータ」ウィンドウで、「WSDL ポート 」>「casaPort1 」>「casaPort1 」を展開し、「file:address 」ノードを選択します。
「file:address 」の「プロパティー」ウィンドウで、「fileDirectory 」プロパティーの「C:\Temp 」を文字列「c:\test 」に置き換えます。
変更を保存するには、「プロジェクト」ウィンドウで「SampleCompositeApp 」プロジェクトノードを選択し、メインメニューから「ファイル」>「すべてを保存」を選択します。
ページの先頭へ
この節では、複合アプリケーションプロジェクトを配備し、その配備したアプリケーションをテストします。このチュートリアルの前のほうにある Sun Java System Application Server の構成と起動 の手順を省略した場合は、タスクの配備とテスト作業を行う前に、その手順を実行する必要があります。
複合アプリケーションを配備するには、次の手順に従います。
「プロジェクト」ウィンドウで「SampleCompositeApp 」プロジェクトノードを選択して右クリックし、「配備」を選択します。
「出力」ウィンドウに、次のようなメッセージが表示されます。
構築成功 (合計時間: 6 秒)
複合アプリケーションをテストするには、次の手順に従います。
エディタを使用して、「Hello World! 」という文字列を含む新しいテキストファイルを作成し、そのファイルを c:\test フォルダに input.txt という名前で保存します。
実行プロセスは次のようになります。
アーカイブフォルダの下に input.txt<UUID> _processed を作成します。
C:/test フォルダに、input.txt と同じ内容の output.txt を作成します。この場合、文字列「Hello World!」です。
これが動作しない場合は、エラー処理が発生し次が行われます。
c:\test\filebc_tmp フォルダの下に input.txt<UUID> _error を作成します。
ページの先頭へ
まとめ
このチュートリアルでは、BPEL モジュールプロジェクトを作成しました。次にこのプロジェクトに WSDL ドキュメントを追加し、WSDL エディタのパートナービューを使用してメッセージ、パートナーリンクの型、ポート型、および操作を追加します。次に、複合アプリケーションプロジェクトを作成し、複合アプリケーション (サービスアセンブリ) エディタを使用してプロジェクト構成を変更します。複合アプリケーションのファイル結合コンポーネントも使用します。
ページの先頭へ
次の手順
関連項目
ページの先頭へ