単純な同期 BPEL プロセス
最終更新日: 2006 年 11 月 14 日
寄稿者 Sherry Barkodar、保守管理者 Alyona Stashkova
このチュートリアルでは、サンプルプロジェクト SynchronousSample の概要を説明し、NetBeans Enterprise Pack 5.5 バンドルと必要なすべての実行環境を使用して、同期 BPEL プロセスを配備、実行、およびテストする例を示します。
この同期 BPEL プロセスは、単純な同期フローを表しています。このプロセスは入力メッセージを取得し、そのメッセージを同期的に返信します。
クライアントは、要求-応答操作を起動することにより、この同期プロセスを開始します。同期プロセスを起動したあと、クライアントはプロセスが終了して結果が返されるまでブロックされます。
このチュートリアルでは、SynchronousSample という単純な BPEL プロジェクトと、SynchronousSampleApplication という複合アプリケーションプロジェクトを作成します。このプロジェクトには、WSDL ファイル、XML スキーマファイル、配備記述子、およびテスト用の入力ファイルが含まれます。このプロセスの Web サービスインタフェースは、単一の同期操作です。
前提条件
このチュートリアルは、Java の言語とプラットフォーム、および NetBeans IDE についての基本的な知識またはプログラミング経験を持つユーザーを想定しています。
システム要件
このチュートリアルでは、ユーザーのシステムが、『NetBeans Enterprise Pack 5.5 リリースノート』の「システム要件」の項で指定された要件を満たしていることを想定しています。
このチュートリアルに必要なソフトウェア
開始する前に、コンピュータに次のソフトウェアをインストールしておく必要があります。
- NetBeans IDE 5.5 と NetBeans Enterprise Pack 5.5 (ダウンロード)
- このチュートリアルの配備の手順を実行するには、Sun Java System Application Server Platform Edition 9 Update 1 が必要です。
この Application Server は、NetBeans Enterprise Pack 5.5 のダウンロードに付属しています。
目次
ページの先頭へ
チュートリアル環境の構成
アプリケーションを配備できるよう、前もって Sun Java System Application Server および JBI 実行環境を正しく構成し、稼動させておく必要があります。
チュートリアル環境を構成するには、次の手順に従います。
- 「実行時」タブをクリックして「実行時」ウィンドウを開きます。
- 「実行時」ウィンドウで「サーバー」ノードを展開します。
- 「サーバー」ノードにすでに「Sun Java System Application Server 9」ノードが含まれている場合は、手順 5 へ進みます。
- 「サーバー」ノードに「Sun Java System Application Server 9」ノードが含まれていない場合は、次のようにしてアプリケーションサーバーを追加します。
- 「サーバー」ノードを右クリックし、ポップアップメニューから「サーバーを追加」を選択します。
「サーバーインスタンスを追加」ダイアログが開きます。
- 「サーバーを選択」ページで、「サーバー」ドロップダウンリストから「Sun Java System Application Server」を選択します。
- (省略可能)「名前」フィールドで、IDE 内でこのサーバーを識別するために使用する任意の名前を入力するか、デフォルト値のままにします。
- 「次へ」をクリックします。
「プラットフォームフォルダの場所」ページが開きます。
- 「プラットフォームの場所」フィールドの「参照」ボタンを使用して、Application Server のインストール場所に移動して選択します。
インストール時にデフォルト値のままにした場合、インストール場所は C:\Sun\Appserver です。
- 「ローカルのデフォルトドメインを登録」ラジオボタンを選択します。
- 「次へ」をクリックします。
- ドメインの管理者のユーザー名とパスワードを入力します。
インストール時にデフォルト値のままにした場合、ユーザー名は admin で、パスワードは adminadmin です。
- 「完了」をクリックします。
- 「実行時」ウィンドウで、「Sun Java System Application Server 9」ノードを右クリックし、「起動」を選択します。
開始オプションが使用可能でない場合、サーバーはすでに稼動しており、次の手順は省略できます。
- 「出力」ウィンドウに次のメッセージが表示されるまで待ちます。
Application server startup complete.
サーバーが稼動している場合は、「Sun Java System Application Server 9」ノード上に緑色の矢印が表示されます。
ページの先頭へ
SynchronousSample プロジェクトを開く
- IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
「新規プロジェクト」ウィザードが開きます。
- 「カテゴリ」リストで、「サンプル」>「サービス指向アーキテクチャー」を選択します。
- 「プロジェクト」リストで、「同期 BPEL プロセス」を選択します。
- 「次へ」をクリックします。
- 「プロジェクト名」フィールドに「SynchronousSample」と入力します。
- (省略可能)「プロジェクトの場所」フィールドの「参照」ボタンを使用して、IDE がプロジェクトファイルを格納する別のフォルダに移動して選択します。
- 「完了」をクリックします。
この時点で、「プロジェクト」ウィンドウに 2 つのノードが含まれます。1 つは SynchronousSample という BPEL プロジェクト用で、もう 1 つは SynchronousSampleApplication という複合アプリケーションプロジェクト用です。
- 「SynchronousSampleApplication」ノードには、壊れている参照があります。これは正常な動作です。複合アプリケーションは、JBI モジュールに依存しています。
壊れている参照は、あとで、「アプリケーションサーバーへのプロジェクトの配備」の項で解決できます。
ページの先頭へ
「プロジェクト」ウィンドウでの BPEL プロジェクトの概要
- 「プロジェクト」ウィンドウで「SynchronousSample」ノードを展開し、さらに「プロセスファイル」ノードを展開します。
「プロセスファイル」ノードには、次の項目が入っています。
- SynchronousSample.bpel (BPEL プロセス)
- SynchronousSample.wsdl (プロセス Web サービスインタフェース)
- SynchronousSample.xsd (スキーマファイル)
- 「SynchronousSample.bpel」ノードをダブルクリックします。
次の点に注意してください。
- ソースエディタには、SynchronousSample.bpel 用のタブが含まれています。
- デザインビューに SynchronousSample の図が表示されます。
デザインビューは、ビジネスプロセスのビジュアルデザイナーです。このビューで、ビジネスプロセスのモデルを視覚的に作成できます。BPEL 設計ツールは、視覚的なデザインに対応する BPEL コードを自動的に生成します。
- BPEL 要素の「パレット」は、ソースエディタの右側に表示されます。
- 「ナビゲータ」ウィンドウには、BPEL プロセスの BPEL 論理ビューが表示されます。

(表示を拡大)
ページの先頭へ
ソースエディタでの WSDL エディタの概要
WSDL エディタを使用して、Web サービス記述言語 (WSDL) ファイルを作成および編集することができます。WSDL エディタには、デザインビューとソースビューがあります。
デザインビューを表示するには、次の手順に従います。
- 「プロジェクト」ウィンドウで、SynchronousSample.wsdl ファイルをクリックします。
この時点で、ソースエディタに SynchronousSample.wsdl ファイル用のタブが含まれます。
この WSDL ファイルは、デザインビューの中に開かれています。
- デザインビューでは、WSDL ファイルはツリーコンポーネントとして表示され、そこでファイルの要素と属性を構成できます。

(表示を拡大)
ソースビューを表示するには、次の手順に従います。
「ソース」ボタンをクリックします。
下層にある XML ソースコードがソースビューに表示されます。

(表示を拡大)
ページの先頭へ
デザインビューへの If アクティビティーの追加
- 「プロジェクト」ウィンドウで、「SynchronousSample」ノード、プロセスファイル」ノード「を順に展開し、「SynchronousSample.bpel」ノードをダブルクリックします。
デザインビューに SynchronousSample.bpel 図が表示されます。
- ソースエディタで、デザインビューをクリックします。
- 「パレット」の「構造化されたアクティビティー」セクションで If アイコンを選択し、選択したアイコンを開始 (Start) アクティビティーと代入 (Assign) アクティビティーの間のデザイン領域までドラッグします。
選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
このアクションにより、デザインビューに「If1」という If アクティビティーが配置されます。
- デザインビューで、「If1」アクティビティーをクリックします。
IDE の下部に BPEL マッパーが表示されます。
BPEL マッパーが表示されない場合は、「ウィンドウ」>「BPEL マッパー」を選択します。
BPEL マッパーを使用して論理条件を定義します。
BPEL マッパー上部にあるセクションがメソッドパレットを形成していることを確認してください。
- メソッドパレットから、「演算子」をクリックし、「== 等しい」メソッド
を選択します。
「== 等しい」メソッドが BPEL マッパーの中央部分 (エディタ) に表示されます。
- メソッドパレットから「文字列」メソッドをクリックし、「文字列」ドロップダウンリストから「文字列リテラル」
を選択します。
エディタに「文字列リテラル」ボックスが表示されます。
- 文字列リテラルメソッドに「Hello World」と入力し、Enter キーを押します。
- 文字列リテラルボックスと「== 等しい」ボックスをエディタの中央まで移動します。
- BPEL マッパーの左区画で、「変数」の下の「inputVar」>「inputType」を展開します。
「paramA」が「inputType」の下に表示されます。
- 「paramA」を「== 等しい」メソッドの any1 部分上までドラッグします。
- 文字列リテラルボックスの右側にある小さな正方形を選択します。ハンドカーソルが表示されたら、「== 等しい」メソッドの any2 部分まで接続線をドラッグします。
- 「== 等しい」メソッドから、return boolean を「結果」までドラッグします。
ページの先頭へ
デザインビューへの代入アクティビティーの追加
- デザインビューで、既存の Assign1 アクティビティーを If1 アクティビティーまでドラッグします。この代入 (Assign) アクティビティーを、If1 アクティビティー領域内の 2 つの大きな X アイコンの間に配置します。
- 「パレット」の基本アクティビティーセクションを開き、代入アクティビティーをデザイン領域までドラッグし、この 2 番目の代入アクティビティーを既存の割り当ての右側に配置します。
- 新しい Assign2 アクティビティーを選択します。
- マッパーのメソッドパレットから、文字列メソッドをクリックし、「文字列」ドロップダウンリストから連結
を選択します。
エディタの中央部分に連結メソッドが表示されます。
- 連結ボックス内の最初のフィールドをダブルクリックし、最初の文字列内に Hello とその後ろに空白を入力します。Enter キーを押します。
- マッパーの左側から、「inputVar」>「inputType」と展開します。
- 「paramA」を連結メソッドの string2 部分、つまり 2 番目のフィールドまでドラッグします。
- マッパーの右側から、「outputVar」>「resultType」と展開します。
- 連結メソッドから return string を「outputVar」>「resultType」の下の paramA までドラッグします。
これにより、文字列 Hello が入力に連結され、文が出力へコピーされます。
ページの先頭へ
アプリケーションサーバーへのプロジェクトの配備
BPEL プロジェクトを配備する前に、JBI モジュールを配備プロジェクトに追加する必要があります。プロジェクトを配備すると、サービスアセンブリがアプリケーションサーバーで使用可能になり、したがって、そのサービスユニットを実行できるようになります。
JBI モジュールを追加するには、次の手順に従います。
- 「プロジェクト」ウィンドウで「SynchronousSampleApplication」プロジェクトノードを右クリックし、ポップアップメニューから「JBI モジュールを追加」を選択します。
「プロジェクトの選択」ダイアログが開きます。
- SynchronousSample プロジェクトを選択し、「プロジェクト JAR ファイルを追加」をクリックします。
「プロジェクトの選択」ダイアログが閉じます。
- 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」プロジェクトノードを展開し、さらに「JBI モジュール」ノードを展開します。
「SynchronousSample.jar」ノードが追加されたことに注意してください。
複合アプリケーションを配備するには、次の手順に従います。
- 「SynchronousSampleApplication」プロジェクトノードを右クリックし、「プロジェクトを配備」を選択します。
「出力」ウィンドウに表示される次のようなメッセージを確認してください。
構築成功 (合計時間: 7 秒)。
- 「出力」ウィンドウが表示されない場合は、「ウィンドウ」>「出力」を選択します。
ページの先頭へ
テストドライバの作成
テストケースを追加して操作に結合し、入力を行なったあと、テスターを使用することにより、複合アプリケーションプロジェクトの機能を強化できます。
テストケースを追加するには、次の手順に従います。
- 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」プロジェクトノードを展開し、「テスト」ノードを右クリックし、ポップアップメニューから「新規テストケース」を選択します。
「新規テストケース」ウィザードが開きます。
- 「名前」に、「MyTestcase」と入力し、「次へ」をクリックします。
- 「SynchronousSample - プロセスファイル」を展開し、「SynchronousSample.wsdl」を選択して「次へ」をクリックします。
- 「operation1」を選択し、「完了」をクリックします。
プロジェクトツリーの「テスト」の下に、「入力」および「出力」の 2 つのファイルが入った新しいフォルダ MyTestcase が作成されます。
- 「入力」をダブルクリックし、その内容を次のように変更します。
- Body コンテンツの中で次の行を見つけます。
<syn:paramA>?string?<syn:paramA> .
- ?string? を Sherry に置き換えます。
この行は次のようになります。
<syn:paramA>Sherry<syn:paramA> .
- 変更を保存するには、IDE のメインメニューから「ファイル」>「保存」を選択します。
- 「出力」をダブルクリックして、内容を調べます。
テストの実行前には、このファイルは空白です。
テストを実行するたびに、現在の出力が「出力」の内容と比較されます。「出力」が空の場合は、「入力」が「出力」へコピーされます。
ページの先頭へ
SynchronousSampleApplication のテスト
- 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」、「テスト」、「TestCase0」を順に展開します。
「TestCase0」ノードには、2 つの XML ファイルが入っています。入力用の Input と、出力用の Output です。.
テストを実行するたびに、現在の出力が「出力」の内容と比較されます。
- 「TestCase0」プロジェクトノードを右クリックし、コンテキストメニューから「実行」を選択します。
「出力」ウィンドウの次のメッセージを確認してください。
- 「MyTestcase」ノードを右クリックし、コンテキストメニューから「実行」を選択します。
これは、Output ファイルが空という特殊な事例であり、出力は、Output に書き込まれます。
「空の出力を上書きしますか?」ダイアログが表示されます。
- 「はい」をクリックします。
- 次のような失敗のメッセージを確認してください。
- 手順 3 を繰り返します。
初回の実行のあとは、Output.xml ファイルは空ではありません。ファイルの内容は保存され、新しい結果によって上書きされません。
ページの先頭へ