FeaturesPluginsDocs & SupportCommunityPartners

単純な同期 BPEL プロセスの開発

このチュートリアルでは、サンプルプロジェクト SynchronousSample の概要を説明し、NetBeans IDE 6.0 と必要なすべての実行環境を使用して、同期 BPEL プロセスを配備、実行、およびテストする例を示します。

この同期 BPEL プロセスは、単純な同期フローを表しています。このプロセスは入力メッセージを取得し、そのメッセージを同期的に返信します。クライアントは、要求-応答操作を起動することにより、この同期プロセスを開始します。同期プロセスを起動したあと、クライアントはプロセスが終了して結果が返されるまでブロックされます。

このチュートリアルでは、SynchronousSample という単純な BPEL プロジェクトと、SynchronousSampleApplication という複合アプリケーションプロジェクトを使用します。このプロジェクトには、WSDL ファイル、XML スキーマファイル、配備記述子、およびテスト用の入力ファイルが含まれます。このプロセスの Web サービスインタフェースは、単一の同期操作です。

予想される所要時間: 30

チュートリアルの要件

次に進む前に、この節の要件を確認してください。

前提条件

このチュートリアルでは、Java 言語、Java プラットフォーム、および NetBeans IDE の基本的な知識またはプログラミング経験があることを前提としています。

システム要件

これらのチュートリアルでは、『NetBeans IDE 6.0 リリースノート』の「システム要件」のトピックに指定された要件を、システムが満たしていることが前提になります。

チュートリアルに必要なソフトウェア

始める前に、NetBeans IDE 6.0 と SOA、および GlassFish アプリケーションサーバーをコンピュータにインストールする必要があります。これらは NetBeans IDE 6.0 ダウンロードのページにある「すべて」ダウンロードに含まれます。

ページの先頭へ

GlassFish アプリケーションサーバーの構成と起動

NetBeans 6.0 の完全版のダウンロードをインストールすると、GlassFish アプリケーションサーバーが含まれます。NetBeans IDE は、必要なときに、自動的にアプリケーションサーバーを起動します。

GlassFish アプリケーションサーバーを起動するには、次の手順に従います。

  1. 「サービス」ウィンドウが表示されていない場合は、「ウィンドウ」>「サービス」を選択します。
  2. 「サービス」ウィンドウで「サーバー」ノードを展開します。
    「サーバー」ノードに GlassFish アプリケーションサーバーのサブノードが含まれるはずです。GlassFish アプリケーションサーバーのノードが表示されない場合は、GlassFish アプリケーションサーバーを構成する手順へ進んでください。

 

  1. GlassFish アプリケーションサーバーのノードを右クリックし、「起動」を選択します。
    「出力」ウィンドウに、アプリケーションの起動に関するログ情報が表示されます。「出力」ウィンドウが表示されていない場合は、「ウィンドウ」>「出力」>「出力」を選択します。

    Application server startup complete」というメッセージが「出力」ウィンドウに表示されたら、アプリケーションサーバーは実行中です。
    注: GlassFish アプリケーションサーバーのノードに緑色の矢印のバッジが表示されていれば、そのサーバーは実行中です。

: アプリケーションを GlassFish アプリケーションサーバーに配備すると、サーバーを自動的に起動します。したがって、アプリケーションサーバーを手動で起動する必要はありません。

注: 次の手順は、GlassFish V2 アプリケーションサーバーの別のバージョンを使用するように IDE を構成する方法を示しています。

GlassFish V2 アプリケーションサーバーを構成するには、次の手順に従います。

NetBeans 6.0 に付属のアプリケーションサーバーとは別のバージョンを使用したいことがあるでしょう。たとえば、GlassFish V2 アプリケーションサーバーの最新バージョンを GlassFish コミュニティーのサイトからダウンロードし、インストールしたい場合です。

次の手順は、GlassFish V2 アプリケーションサーバーの別のバージョンを使用するように NetBeans 6.0 IDE を構成する方法を示しています。アプリケーションサーバーの別のバージョンをすでにダウンロードし、インストールしてあることを前提としています。

  1. 「サービス」ウィンドウで「サーバー」ノードを右クリックし、ポップアップメニューから「サーバーを追加」を選択します。
    「サーバーインスタンスの追加」ダイアログが開きます。
  2. 「サーバーを選択」ページで、リストから GlassFish V2 を選択します。
  3. 「次へ」をクリックします。
    「プラットフォームフォルダの場所」ページが開きます。
  4. 「プラットフォームの場所」フィールドの「参照」ボタンを使用して、アプリケーションサーバーのインストール場所に移動して、選択します。

    GlassFish アプリケーションサーバーをデフォルトの場所にインストールした場合、表 1 をインストール場所の参考にしてください。さもなければ、GlassFish V2 アプリケーションサーバーをインストールした場所を指定してください。

    表 1: アプリケーションサーバーのデフォルトのインストールディレクトリ

    プラットフォーム インストールしたユーザー SOA インストール ツール付きバンドルインストール
    Solaris OS
    Linux
    root /opt/glassfish-v2 /opt/SUNWappserver
    Solaris OS
    Linux
    user ~/glassfish-v2 ~/SUNWappserver
    Mac OS X N/A /Applications/NetBeans/glassfish-v2b58g /Applications/NetBeans/NetBeans 6.0
    Windows N/A C:\Sun\AppServer C:\Sun\AppServer
  5. 「ローカルのデフォルトドメインを登録」ラジオボタンを選択し、「次へ」をクリックします。
  6. ドメインの管理者のユーザー名とパスワードを入力します。
    インストール時にデフォルト値のままにした場合、ユーザー名は admin で、パスワードは adminadmin です。
  7. 「完了」をクリックします。

ページの先頭へ

SynchronousSample プロジェクトを開く

  1. IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
    「新規プロジェクト」ウィザードが開きます。
  2. 「カテゴリ」リストで、「サンプル」>「SOA」を選択します。
  3. 「プロジェクト」リストで、「同期 BPEL プロセス」を選択します。

    選択されたサンプルの BPEL モジュールプロジェクト

  4. 「次へ」をクリックします。
  5. 「プロジェクト名」フィールドに「 SynchronousSample 」と入力します。

    プロジェクト名の入力

  6. (省略可能)「プロジェクトの場所」フィールドで、「参照」ボタンを使用して移動し、IDE がプロジェクトファイルを格納する別のフォルダを選択します。
  7. 「完了」をクリックします。
    プロジェクトウィンドウには、2 つのプロジェクトノードが表示されます。1 つは SynchronousSample という BPEL プロジェクト、もう 1 つは SynchronousSampleApplication という複合アプリケーションプロジェクトです。

ページの先頭へ

「プロジェクト」ウィンドウでの BPEL プロジェクトの操作

  1. 「プロジェクト」ウィンドウで「SynchronousSample」ノードを展開し、さらに「プロセスファイル」ノードを展開します。
    「プロセスファイル」ノード には、次の項目が入っています。

    • SynchronousSample.bpel (BPEL プロセス)
    • SynchronousSample.wsdl (プロセス Web サービスインタフェース)
    • SynchronousSample.xsd (スキーマファイル)

    「SynchronousSample プロジェクト」ビュー

  2. SynchronousSample.bpel 」ノードをダブルクリックします。
    次のことに注意してください。

    • BPEL デザイナーには、SynchronousSample.bpel 用のタブが含まれています。
    • デザインビューに SynchronousSample の図が表示されます。
      デザインビューは、ビジネスプロセスのビジュアルデザイナーです。デザインビューでは、ビジネスプロセスを視覚的にモデル化できます。BPEL デザイナーは、ビジュアル設計に対応する BPEL コードを自動的に生成します。
    • BPEL 要素のデザインビューパレットが右側に表示されます。
    • 「ナビゲータ」ウィンドウには、BPEL プロセスの BPEL 論理ビューが表示されます。


    SynchronousSample BPEL デザインビュー
    (表示を拡大)

ページの先頭へ

ソースエディタでの WSDL エディタの概要

WSDL エディタを使用して、Web サービス記述言語 (WSDL) ファイルを作成および編集できます。WSDL エディタには、デザインビュー、ソースビュー、およびパートナービューが含まれています。

WSDL ビューを表示するには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで、 SynchronousSample.wsdl ファイルをクリックします。
    WSDL ビューで WSDL ファイルが開きます。
  2. WSDL ビューでは、WSDL ファイルはツリーコンポーネントとして表示され、そこでファイルの要素と属性を構成できます。

    SynchronousSample WSDL
    クリックして拡大

ソースビューを表示するには、次の手順に従います。

  • 「ソース」ボタンをクリックします。
    下層にある XML ソースコードがソースビューに表示されます。

    SynchronousSample WSDL ソースビュー
    (表示を拡大)

パートナービューを表示するには、次の手順に従います。

  • 「パートナー」ボタンをクリックします。
    パートナー間の相互作用を表す WSDL ファイルの抽象要素は、パートナービューに表示されます。

    SynchronousSample WSDL ソースビュー
    (表示を拡大)

ページの先頭へ


デザインビューへの If アクティビティーの追加

  1. 「プロジェクト」ウィンドウで、「SynchronousSample」ノード、「プロセスファイル」ノードを順に展開し、「SynchronousSample.bpel」ノードをダブルクリックします。
    デザインビューに SynchronousSample.bpel 図が表示されます。
  2. 「パレット」の「構造化されたアクティビティー」セクションで If アイコンを選択し、選択したアイコンを開始 (Start) アクティビティーと代入 (Assign) アクティビティーの間のデザイン領域までドラッグします。
    選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
    このアクションにより、デザインビューに「 If1 」という If アクティビティーが配置されます。

    追加された If アクティビティー

  3. デザインビューで、「 If1 」アクティビティーをクリックします。
    IDE の下部に「BPEL マッパー」ウィンドウが表示されます。
    BPEL マッパーが表示されない場合は、「ウィンドウ」>「BPEL マッパー」を選択します。BPEL マッパーを使用して論理条件を定義します。BPEL マッパー上部にあるセクションがメニューバーを形成していることを確認してください。

    BPEL マッパー

  4. メニューバーで「演算子」をクリックし、「==等しい」メソッド 等しい を選択します。
    「== 等しい」メソッドが、マッピング区画という BPEL マッパーの中央部分 (エディタ) に表示されます。
  5. メニューバーで「文字列」メソッドをクリックし、「文字列」ドロップダウンリストから「文字列リテラル」 文字列リテラル を選択します。
    「文字列リテラル」ボックスは、マッパーのマッピング区画に表示されます。
  6. 文字列リテラルメソッドに「 Hello World 」と入力し、Enter キーを押します。
  7. 文字列リテラルボックスと「== 等しい」ボックスを、マッピング区画の中央まで移動します。

    挿入された Equal と文字列リテラル

  8. BPEL マッパーのソースツリー区画で、「変数」の下の「inputVar」>「inputType」を展開します。
    inputType の下に paramA が表示されます。
  9. paramA 」を「== 等しい」メソッドの any1 部分上までドラッグします。
  10. 文字列リテラルボックスの右側にある小さな正方形を選択します。ハンドカーソルが表示されたら、「== 等しい」メソッドの any2 部分まで接続線をドラッグします。
  11. 「== 等しい」メソッドから、return boolean を「結果」までドラッグします。

    OO モデルへのリレーショナルデータベースのマッピング

ページの先頭へ


デザインビューへの代入アクティビティーの追加

  1. デザインビューで、既存の Assign1 アクティビティーを If1 アクティビティーまでドラッグします。この代入アクティビティーを、If1 アクティビティー領域内の 2 つの大きな X アイコンの間に配置します。

    追加された代入アクティビティー

  2. パレットの「基本アクティビティー」セクションから、代入アクティビティーをデザインビューへドラッグして、既存の代入要素の右に配置します。

    追加された 2 番目の代入アクティビティー

  3. 新しい Assign2 アクティビティーを選択します。
  4. マッパーのメニューバーから、文字列メソッドをクリックして「文字列」ドロップダウンリストから連結 連結 を選択します。
    連結メソッドは、BPEL マッパーのマッピング区画に表示されます。
  5. 連結ボックスの最初のフィールドを右クリックし、ポップアップメニューから「リテラルを追加」を選択します。
  6. 最初の文字列に Hello に続いて空白文字を入力し、Enter キーを押します。
  7. BPEL マッパーのソースツリー区画で、「inputVar」>「inputType」を展開します。
  8. paramA 」を連結メソッドの string2 部分、つまり 2 番目のフィールドまでドラッグします。
  9. BPEL マッパーの宛先ツリー区画で、「outputVar」>「resultType」を展開します。
  10. 連結メソッドから return 文字列を「outputVar」>「resultType」の下の paramA までドラッグします。
    これにより、文字列 Hello が入力に連結され、文が出力へコピーされます。

    連結された文字列 Hello

  11. Ctrl-S キーを押して編集を保存します。

ページの先頭へ


Application Server へのプロジェクトの配備

プロジェクトを配備すると、アプリケーションサーバーがサービスアセンブリを使用できるようになり、サービスユニットが実行可能になります。

複合アプリケーションを配備するには、次の手順に従います。

  1. 「出力」ウィンドウが表示されていない場合は、「ウィンドウ」>「出力」を選択します。
  2. SynchronousSampleApplication 」プロジェクトノードを右クリックし、「プロジェクトを配備」を選択します。
  3. 「警告」ダイアログで、「GlassFish V2」サーバーが選択されていることを確認し、「了解」をクリックします。
    「出力」ウィンドウに表示される次のようなメッセージを確認してください。
    BUILD SUCCESSFUL.

    「出力」ウィンドウ

ページの先頭へ


テストドライバの作成

テストケースを追加して操作に結合し、入力を行なったあと、テスターを使用することにより、複合アプリケーションプロジェクトの機能を強化できます。

  1. 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」プロジェクトノードを展開し、「テスト」ノードを右クリックし、ポップアップメニューから「新規テストケース」を選択します。
    「新規テストケース」ウィザードが開きます。
  2. 「名前」に、「MyTestCase」と入力して「次へ」をクリックします。
  3. SynchronousSample - プロセスファイル」を展開し、「SynchronousSample.wsdl」を選択して「次へ」をクリックします。
  4. operation1 」を選択し、「完了」をクリックします。
    プロジェクトツリーの「テスト」の下に、「入力」および「出力」の 2 つのファイルが入った新しいフォルダ MyTestCase が作成されます。

    MyTestcase

  5. 入力」をダブルクリックし、その内容を次のように変更します。

    1. Body コンテンツの中で次の行を見つけます。
      <syn:paramA>?string?<syn:paramA> .
    2. ?string?Sherry に置き換えます。
      この行は次のようになります。
      <syn:paramA>Sherry<syn:paramA> .
    3. 変更を保存するには、IDE のメインメニューから「ファイル」>「保存」を選択します。
  6. 出力」をダブルクリックして、内容を調べます。
    テストの実行前には、このファイルは空白です。
    テストを実行するたびに、現在の出力が「出力」の内容と比較されます。「出力」が空の場合は、「入力」が「出力」へコピーされます。

ページの先頭へ


SynchronousSampleApplication のテスト

  1. 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」>「テスト」>「TestCase0」ディレクトリへ移動します。
    TestCase0」ノードには、入力用の「入力」と出力用の「出力」の 2 つの XML ファイルがあります。
    テストを実行するたびに、現在の出力が「出力」の内容と比較されます。
  2. TestCase0 」プロジェクトノードを右クリックし、コンテキストメニューから「実行」を選択します。
    「JUnit テスト結果」ウィンドウ内のメッセージを確認してください。

    成功したテスト

  3. MyTestCase」ノードを右クリックし、ポップアップメニューから「実行」を選択します。
    これは、「出力」ファイルが空で、出力が「出力」に書き込まれる場合の、特別なケースです。
    「空の出力を上書きしますか?」ダイアログが開き、Output.xml ファイルを上書きすることを確認できます。

    空の出力を上書きしますか?

  4. 「はい」をクリックします。
    次のような失敗のメッセージを確認してください。

    失敗した MyTestcas

  5. 手順 3 を繰り返します。
    初回の実行のあとは、 Output.xml ファイルは空ではありません。ファイルの内容は保存され、新しい結果によって上書きされません。

    成功した MyTestcase

関連項目


ページの先頭へ

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by