FeaturesPluginsDocs & SupportCommunityPartners

Hello World 複合アプリケーションの開発


このチュートリアルでは、SynchronousSample という単純な BPEL モジュールプロジェクトと、SynchronousSampleApplication という複合アプリケーションを作成します。このチュートリアルでは、単純な XML スキーマファイル、単純な WSDL ファイル、および BPEL ファイルを設計する方法を示します。ここでは、BPEL プロセスを設計して配備する方法について学習します。また、複合アプリケーションを作成してテスト実行する方法についても学習します。このプロセスは、入力メッセージをエコーバックする単純な BPEL プロセスです。この BPEL プロセスは、結果をクライアントへ同期的に返します。クライアントは、要求-応答操作を起動することにより、BPEL プロセスを開始します。クライアントは、プロセスが終了して結果を返すまでブロックされます。このプロジェクトには、WSDL ファイル、XML スキーマファイル、およびテスト用の入力ファイルが含まれます。

このチュートリアルは、より複雑な複合アプリケーションの構築に向けて、最初のステップとなるように意図されています。

前提条件

このチュートリアルは、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 実行環境を正しく構成し、稼動させておく必要があります。

チュートリアル環境を構成するには、次の手順に従います。

  1. 「実行時」タブをクリックして「実行時」ウィンドウを開きます。
  2. 「実行時」ウィンドウで「サーバー」ノードを展開します。
  3. 「サーバー」ノードにすでに「Sun Java System Application Server 9」ノードが含まれている場合は、手順 5 へ進みます。
  4. 「サーバー」ノードに「Sun Java System Application Server 9」ノードが含まれていない場合は、次のようにしてアプリケーションサーバーを追加します。
    1. 「サーバー」ノードを右クリックし、ポップアップメニューから「サーバーを追加」を選択します。
      「サーバーインスタンスを追加」ダイアログが開きます。
    2. 「サーバーを選択」ページで、「サーバー」ドロップダウンリストから「Sun Java System Application Server」を選択します。
    3. (省略可能)「名前」フィールドで、IDE 内でこのサーバーを識別するために使用する任意の名前を入力するか、デフォルト値のままにします。
    4. 「次へ」をクリックします。
      「プラットフォームフォルダの場所」ページが開きます。
    5. 「プラットフォームの場所」フィールドの「参照」ボタンを使用して、Application Server のインストール場所に移動して選択します。
      インストール時にデフォルト値のままにした場合、インストール場所は C:\Sun\Appserver です。
    6. 「ローカルのデフォルトドメインを登録」ラジオボタンを選択します。
    7. 「次へ」をクリックします。
    8. ドメインの管理者のユーザー名とパスワードを入力します。
      インストール時にデフォルト値のままにした場合、ユーザー名は admin で、パスワードは adminadmin です。
    9. 「完了」をクリックします。
  5. 「実行時」ウィンドウで、「Sun Java System Application Server 9」ノードを右クリックし、「起動」を選択します。
    開始オプションが使用可能でない場合、サーバーはすでに稼動しており、次の手順は省略できます。
  6. 「出力」ウィンドウに次のメッセージが表示されるまで待ちます。
    アプリケーションサーバーの起動は完了しました。
    サーバーが稼動している場合は、「Sun Java System Application Server 9」ノード上に緑色の矢印が表示されます。

デモを表示

ページの先頭へ

プロジェクトの作成

この節では、SynchronousSample という BPEL モジュールプロジェクトを作成します。

SynchronousSample プロジェクトを作成するには、次の手順に従います。

  1. IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
    「新規プロジェクト」ウィザードが開きます。
  2. 「カテゴリ」リストで、「サービス指向アーキテクチャー」ノードを選択します。
  3. 「プロジェクト」リストで、「BPEL モジュール」ノードを選択します。
  4. 「次へ」をクリックします。
  5. 「プロジェクト名」フィールドに「SynchronousSample」と入力します。
  6. (省略可能)「プロジェクトの場所」フィールドの「参照」ボタンを使用して、IDE がプロジェクトファイルを格納する別のフォルダに移動して選択します。
  7. 「完了」をクリックします。
    この時点で、「プロジェクト」ウィンドウに、SynchronousSample という BPEL モジュールプロジェクト用のプロジェクトノードが含まれます。

デモを表示

ページの先頭へ

XML スキーマの作成

この節では、BPEL モジュールプロジェクトに新しい XML スキーマファイルを追加したあと、スキーマに XML スキーマコンポーネントを追加します。

SynchronousSample.xsd を作成するには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで「SynchronousSample」プロジェクトノードを展開して「プロセスファイル」ノードを右クリックし、「新規」>「ファイル/フォルダ」を選択します。
    「新規ファイル」ウィザードが開きます。
  2. 「新規ファイル」ウィザードで、次の手順を実行します。
    1. 「ファイルの種類を選択」ページの「カテゴリ」リストで「XML」 ノードを選択してから、「ファイルの種類」リストで「XML スキーマ」ノードを選択し、「次へ」をクリックします。
    2. 「ファイル名」フィールドに「SynchronousSample」と入力します。
    3. 「完了」をクリックします。
    この時点で、「プロジェクト」ウィンドウの「プロセスファイル」ノードに、「SynchronousSample.xsd」というサブノードが含まれます。ソースエディタには、XML スキーマファイル SynchronousSample.xsd のタブが含まれており、スキーマビューが開かれています。
  3. スキーマビューで「デザイン」ボタンをクリックし、XML スキーマエディタのデザインビューを開きます。

デモを表示

XML スキーマに複合型を追加するには、次の手順に従います。

  1. デザインビューの「パレット」で、「XML スキーマコンポーネント」セクションを展開し、「複合型」アイコンを選択します。
    「パレット」ウィンドウが表示されない場合は、メインメニューから「ウィンドウ」>「パレット」を選択します。
  2. 選択したアイコンを、「複合型」ノードの直下のスキーマデザイン領域までドラッグします。
    1 つの複合型ノードが追加され、その複合型の名前 (newComplexType) が選択され、変更できるようになっています。
  3. 新しいノードに「simpleProcess」と入力し、Enter キーを押します。
    この時点で、デザイン領域に simpleProcess という新しい複合型が表示されます。

デモを表示

simpleProcess にローカル要素を追加するには、次の手順に従います。

  1. 「パレット」の「XML コンポーネント」セクションで、「要素」アイコンを選択し、選択したアイコンをスキーマデザイン領域の「simpleProcess」ノード上へドラッグします。
    newElement」という要素ノードが追加されます。
  2. 「プロパティー」ウィンドウが表示されない場合は、「ウィンドウ」>「プロパティー」を選択します。
  3. スキーマデザイン領域で、「newElement」ノードを選択します。
  4. 「プロパティー」ウィンドウで、「名前」プロパティーの値フィールドを選択して編集可能にし、「paramA」と入力します。
  5. 「プロパティー」ウィンドウで、「定義」プロパティーの省略符号ボタン (...) をクリックします。
    「定義」ダイアログが開きます。
  6. リスト内で「組み込み型」ノードを展開し、「string」ノードを選択します。
  7. 「了解」をクリックします。

デモを表示

大域要素を追加するには、次の手順に従います。

  1. 「パレット」の「XML コンポーネント」セクションで、「要素」アイコンを選択し、選択したアイコンを「要素」ノードの直下のデザイン領域までドラッグします。
    newElement コンポーネントがスキーマデザイン領域の「要素」ノードの下に追加されます。
  2. デザインビューのスキーマデザイン領域で、「newElement」ノードを選択します。
  3. 「プロパティー」ウィンドウで、「名前」プロパティーの値フィールドを選択して編集可能にし、「typeA」と入力します。
  4. 「プロパティー」ウィンドウで、「定義」プロパティーの省略符号ボタン (...) をクリックします。
    「要素の定義 - 定義」ダイアログが開きます。
  5. 型の一覧で、「複合型」ノードを展開し、「simpleProcess」複合型ノードを選択します。
  6. 「了解」をクリックします。
    デザインビュー内で、選択した simpleProcess 複合型が typeA 要素ノードの隣に表示されます。
  7. 変更を保存するには、「プロジェクト」ウィンドウで「SynchronousSample」プロジェクトノードを選択し、IDE のメインメニューから「ファイル」>「すべてを保存」を選択します。

デモを表示

ページの先頭へ

WSDL ドキュメントの作成

この節では、BPEL モジュールプロジェクトに WSDL ファイルを追加したあと、WSL ドキュメントのコンポーネントを構成します。

SynchronousSample.wsdl を作成するには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで「SynchronousSample」プロジェクトノードを展開して「プロセスファイル」ノードを右クリックし、「新規」>「WSDL ドキュメント」を選択します。
    「新規 WSDL ドキュメント」ウィザードが開きます。
  2. 「名前と場所」ページで、次の操作を実行します。
    1. 「ファイル名」フィールドに「SynchronousSample」と入力します。
    2. 「XML スキーマファイルをインポート」チェックボックスを選択します。
    3. 「XML スキーマ」フィールドで、「参照」ボタンをクリックします。
      「スキーマを選択」ダイアログが開きます。このダイアログには、プロジェクト内の XML スキーマが表示されます。
    4. src/SynchronousSample.xsd」を選択し、「了解」をクリックします。
    5. 「次へ」をクリックします。
    「抽象構成」ページが開きます。
  3. 「抽象構成」ページの「入力」領域で、次の操作を実行します。
    1. 「メッセージ部分名」列で、デフォルト値をダブルクリックし、フィールドを編集可能にします。
    2. inputType」と入力し、Enter キーを押します。
    3. 「要素または型」列で、省略符号ボタン (...) をクリックします。
      「要素または型の選択」ダイアログが開きます。
    4. SynchronousSample」ノード、「src/SynchronousSample.xsd」ノード、および「要素」ノードを順に展開します。
    5. 要素」ノードの下で、「typeA」ノードを選択して「了解」をクリックします。
  4. 「抽象構成」ページの「出力」領域で、次の操作を実行します。
    1. 「メッセージ部分名」列で、デフォルト値をダブルクリックし、フィールドを編集可能にします。
    2. resultType」と入力し、Enter キーを押します。
    3. 「要素または型」列で、省略符号ボタン (...) をクリックします。
      「要素または型の選択」ダイアログが開きます。
    4. SynchronousSample」ノード、「src/SynchronousSample.xsd」ノード、および「要素」ノードを順に展開します。
    5. 要素」ノードの下で、「typeA」を選択して「了解」をクリックします。
  5. 「次へ」をクリックします。
    「具象構成」ページが開きます。
    注:次の手順を実行すると、ページ下部のエラーメッセージの表示が消えます。
  6. 「結合サブタイプ」の下の「DOCUMENT リテラル」ラジオボタンを選択します。
  7. 「完了」をクリックします。
    この時点で、「プロジェクト」ウィンドウの「プロセスファイル」ノードに、「SynchronousSample.wsdl」というサブノードが含まれます。
    ソースエディタには、WSDL ファイル SynchronousSample.wsdl のタブが含まれており、「WSDL」ビューが開かれています。

デモを表示

ページの先頭へ

BPEL プロセスの作成

SynchronousSample.bpel を作成するには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで「プロセスファイル」ノードを右クリックし、「新規」>「BPEL プロセス」を選択します。
    「新規 BPEL プロセス」ウィザードが開きます。
  2. 「ファイル名」フィールドに「SynchronousSample」と入力します。
  3. 「完了」をクリックします。
    この時点で、「プロジェクト」ウィンドウの「プロセスファイル」ノードに、「SynchronousSample.bpel」というサブノードが含まれます。
    ソースエディタには、BPEL プロセス SynchronousSample.bpel のタブが含まれており、BPEL Designer のデザインビューが開かれています。

デモを表示

パートナーリンクを追加するには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで、「SynchronousSample」プロジェクトノード、「プロセスファイル」ノードを順に展開し、「SynchronousSample.wsdl」ノードを選択します。
  2. 選択した項目 (SynchronousSample.wsdl) を「プロジェクト」ウィンドウからデザインビューまでドラッグします。
    「Partnerlink1 [パートナーリンク] - プロパティーエディタ」が開きます。
  3. デフォルト値のままにして、「了解」をクリックします。

デモを表示

受信アクティビティーを追加するには、次の手順に従います。

  1. 「パレット」の「Web サービス」セクションで受信アイコンを選択し、選択したアイコンをプロセス開始 (Process Start) アクティビティーと空アクティビティーの間のデザイン領域までドラッグします。
    選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
    このアクションにより、デザインビューに Receive1 という受信アクティビティーが配置されます。
  2. Receive1 アクティビティーをダブルクリックします。
    「Receive1 [受信] - プロパティーエディタ」が開きます。
  3. 「名前」フィールドの値を start に変更します。
  4. 「パートナーリンク」ドロップダウンリストから、「PartnerLink1」を選択します。
    「操作」フィールドは IDE によって記入されます。
  5. 次の手順に従って、新しい入力変数を作成します。
    1. 「入力変数」フィールドの隣の「作成」ボタンをクリックします。
      「新規入力変数」ダイアログが開きます。
    2. 「名前」フィールドの値を inputVar に変更します。
    3. 「了解」をクリックします。
  6. 「了解」をクリックして「Receive1 [受信] - プロパティーエディタ」を閉じます。
    この時点で、デザインビュー内の受信アクティビティーに start というラベルが付きます。

デモを表示

返信アクティビティーを追加するには、次の手順に従います。

  1. 「パレット」の「Web サービス」セクションで返信アイコンを選択し、選択したアイコンを空アクティビティーとプロセス終了 (Process End) アクティビティーの間のデザイン領域までドラッグします。
    選択項目をドロップできる場所を示す視覚的な手がかりが表示されます。
    このアクションにより、デザインビューに Reply1 という返信アクティビティーが配置されます。
  2. Reply1 アクティビティーをダブルクリックします。
    「Reply1 [返信] - プロパティーエディタ」が開きます。
  3. 「名前」フィールドの値を end に変更します。
  4. 「パートナーリンク」ドロップダウンリストから、「PartnerLink1」を選択します。
    「操作」フィールドは IDE によって記入されます。
  5. 次の手順に従って、新しい出力変数を作成します。
    1. 「正常応答」ラジオボタンが選択されているかを確認してください。
    2. 「出力変数」フィールドの隣の「作成」ボタンをクリックします。
      「新規出力変数」ダイアログが開きます。
    3. 「名前」フィールドの値を outputVar に変更します。
    4. 「了解」をクリックします。
  6. 「了解」をクリックして「Reply1 [返信] - プロパティーエディタ」を閉じます。
    この時点で、デザインビュー内の返信アクティビティーに end というラベルが付きます。

デモを表示

代入アクティビティーを追加するには、次の手順に従います。

  1. デザイン領域で、空アクティビティーを選択し、右クリックしてポップアップメニューから「削除」を選択します。
  2. 「パレット」の「基本アクティビティー」セクションで代入アイコンを選択し、選択したアイコンを開始アクティビティーと終了アクティビティーの間のデザイン領域までドラッグします。
    このアクションにより、デザインビューに Assign1 という代入アクティビティーが配置されます。
  3. Assign1 アクティビティーを選択します。
  4. 「BPEL マッパー」ウィンドウが表示されない場合は、メインメニューから「ウィンドウ」>「BPEL マッパー」を選択します。
  5. BPEL マッパーの左側の区画で、「変数」の下の「inputVar」ノードと「inputType」ノードを展開します。
    paramAinputType の下に表示されます。
  6. BPEL マッパーの右側の区画で、「変数」の下の「outputVar」ノードと「resultType」ノードを展開します。
    paramAresultType の下に表示されます。
  7. BPEL マッパーの左区画から BPEL マッパーの右区画の「paramA」ノードまで paramA をドラッグします。
    この割り当てにより、入力文が出力へコピーされます。
  8. 変更を保存するには、「プロジェクト」ウィンドウで「SynchronousSample」プロジェクトノードを選択し、IDE のメインメニューから「ファイル」>「すべてを保存」を選択します。

デモを表示

ページの先頭へ

複合アプリケーションの作成と配備

BPEL モジュールプロジェクトを配備する前に、JBI モジュールを配備プロジェクトに追加する必要があります。プロジェクトを配備すると、サービスアセンブリがアプリケーションサーバーで使用可能になり、したがって、そのサービスユニットを実行できるようになります。

複合アプリケーションプロジェクトを作成し、JBI モジュールを追加するには、次の手順に従います。

  1. IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
    「新規プロジェクト」ウィザードが開きます。
  2. 「カテゴリ」リストで、「サービス指向アーキテクチャー」ノードを選択します。
  3. 「プロジェクト」リストで、「複合アプリケーション」ノードを選択します。
  4. 「次へ」をクリックします。
  5. 「プロジェクト名」フィールドに「SynchronousSampleApplication」と入力します。
  6. 「完了」をクリックします。
    この時点で、「プロジェクト」ウィンドウに、SynchronousSampleApplication という複合アプリケーションプロジェクト用のプロジェクトノードが含まれます。
  7. 「プロジェクト」ウィンドウで「SynchronousSampleApplication」プロジェクトノードを右クリックし、ポップアップメニューから「JBI モジュールを追加」を選択します。
    「プロジェクトの選択」ダイアログが開きます。
  8. このチュートリアルですでに作成した SynchronousSample プロジェクトを選択し、「プロジェクト JAR ファイルを追加」をクリックします。
    「プロジェクトの選択」ダイアログが閉じます。
  9. 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」プロジェクトノードを展開し、さらに「JBI モジュール」ノードを展開します。
    SynchronousSample.jar」ノードが追加されたことを確認してください。

デモを表示

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

  • SynchronousSampleApplication」プロジェクトノードを右クリックし、「プロジェクトを配備」を選択します。
    次のようなメッセージが「出力」ウィンドウに表示された場合、配備は成功です。
    構築成功 (合計時間: 11 秒)

デモを表示

ページの先頭へ

SynchronousSampleApplication のテスト

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

SynchronousSampleApplication をテストするには、次の手順に従います。

  1. 「プロジェクト」ウィンドウで、「SynchronousSampleApplication」プロジェクトノードを展開し、「テスト」ノードを右クリックし、ポップアップメニューから「新規テストケース」を選択します。
    「新規テストケース」ウィザードが開きます。
  2. デフォルトのテストケース名 TestCase1 のまま、「次へ」をクリックします。
  3. 「WSDL ドキュメントの選択」ページで、「SynchronousSample - プロセスファイル」ノードを展開して「SynchronousSample.wsdl」を選択し、「次へ」をクリックします。
  4. 「テストする操作を選択」ページで、「SynchronousSampleOperation」を選択して「完了」をクリックします。
    「プロジェクト」ウィンドウで、「テスト」の下に新しい「TestCase1」ノードが追加されました。
    このノードには「入力」と「出力」の 2 つのサブノードが含まれています。
    ソースエディタには、入力ファイル Input.xml 用のタブが含まれています。
  5. ソースエディタに Input.xml のタブが含まれていない場合は、「プロジェクト」ウィンドウの「入力」ノードをダブルクリックしてファイルを開きます。
  6. ソースエディタの Input.xml ファイル用のタブで、次の操作を実行します。
    1. 次の行を探します。
      <syn:paramA>?string?<syn:paramA>.
    2. ?string?Hello World に置き換えます。
      この行は次のようになります。
      <syn:paramA>Hello World<syn:paramA>
    3. IDE のメインメニューから、「ファイル」>「すべてを保存」を選択します。
  7. 「出力」をダブルクリックして、内容を調べます。
    最初は、output.xml は空です。したがって、最初のテスト実行によって output.xml に実際の出力が生成されます。それ以降のテスト実行では、実際の出力が output.xml の内容と比較されます。
  8. 「プロジェクト」ウィンドウで「TestCase1」ノードを右クリックし、ポップアップメニューから「実行」を選択します。
    注:最初の実行は特殊なケースで、これは、Output.xml は空であり、出力は Output に書き込まれるためです。
    「JUnit テスト結果」ウィンドウ内の失敗したとのメッセージを確認してください。
    「空の出力を上書きしますか?」ダイアログが開きます。
  9. 「はい」をクリックします。
  10. 「プロジェクト」ウィンドウで「TestCase1」ノードを右クリックし、ポップアップメニューから「実行」を選択します。
    初回の実行のあとは、Output は、空白ではありません。ファイルの内容は保存され、新しい結果によって上書きされません。

デモを表示



ページの先頭へ

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   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by