ヘッダーをスキップ
Oracle SOA Suiteチュートリアル
10g (10.1.3.1.0)
B31831-01
  目次へ
目次

前へ
前へ
 
 

10 クライアント・アプリケーションとSOA Order Bookingアプリケーションとのインタフェース

この章では、SOADemo-Clientアプリケーションなどのクライアント・アプリケーションと、SOA Order Bookingアプリケーションのプロジェクトをインタフェースする方法に焦点を当てます。

この章では、クライアント・アプリケーションの詳細な作成方法については説明しません。クライアント・アプリケーションでは標準のADFテクノロジを使用しているため、詳細は、『Oracle Application Development Framework開発者ガイド』および『Oracle Application Development Frameworkチュートリアル』を参照してください。

項目は次のとおりです。

10.1 SOADemo-Clientアプリケーションの概要

SOADemo-Clientアプリケーションは、顧客がGlobal Companyへの注文に使用するWebベースのアプリケーションです。 このアプリケーションにログインした顧客は、製品を参照してショッピング・カートに入れ、注文を発行できます。 SOADemo-Clientアプリケーションのページの詳細は、『Oracle SOA Suiteクイック・スタート・ガイド』を参照してください。

SOADemo-Clientアプリケーションでは、ADFテクノロジを使用して、アプリケーション開発プロセスを簡素化し、アプリケーションの管理を容易にします。 ADFアプリケーションは、JDeveloperを使用して作成できます。

SOADemo-Clientアプリケーションでは、SOA Order Bookingアプリケーションが提供する次のサービスをコールします。

CustomerServiceおよびOrderBookingESBが提供するサービスをSOADemo-Clientアプリケーションで起動できるように、そのサービス用のWebサービス・プロキシを生成する必要があります。 クライアントのコードで、Webサービス・プロキシのメソッドをコールし、CustomerServiceまたはOrderBookingESBの対応するメソッドを起動します。 Webサービス・プロキシは、JDeveloperを使用して生成できます。

10.2 CustomerServiceからのサービスの起動

この項では、CustomerService用のWebサービス・プロキシを生成する方法と、そのWebサービス・プロキシをクライアント・アプリケーションからコールする方法について説明します。

10.2.1 CustomerService用Webサービス・プロキシの生成

CustomerService用のWebサービス・プロキシを生成するには、クライアント・アプリケーションで、Webサービス・プロキシ用のプロジェクトを作成します。 次の手順では、最初に空のプロジェクトを作成し、次にWebサービス・プロキシの作成ウィザードを起動して、CustomerService用のプロキシを作成します。

  1. 使用しているクライアント・アプリケーションにプロジェクトを作成し、CustomerService用のWebサービス・プロキシを含めます。 最初に、空のプロジェクトを作成します。

    1. クライアント・アプリケーションを右クリックし、「新規プロジェクト」を選択します。

    2. 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Projects」を選択します。 「項目」セクションで、「空のプロジェクト」を選択します。

      図10-1 空のプロジェクトを作成するための新規ギャラリ

      図10-1の説明は次にあります。
      「図10-1 空のプロジェクトを作成するための新規ギャラリ」の説明

      「OK」をクリックします。

    3. 「プロジェクトの作成」ダイアログで、「プロジェクト名」フィールドに「CustomerService」と入力します。

      図10-2 CustomerService Webサービス・プロキシ・プロジェクトに関する「プロジェクトの作成」ダイアログ

      図10-2の説明は次にあります。
      「図10-2 CustomerService Webサービス・プロキシ・プロジェクトに関する「プロジェクトの作成」ダイアログ」の説明

      「OK」をクリックします。

      アプリケーション・ナビゲータで、クライアント・アプリケーションの下に空のCustomerServiceプロジェクトが表示されていることを確認します。

  2. 「CustomerService」プロジェクトを右クリックし、「新規」を選択します。 新規ギャラリの「カテゴリ」セクションで、Business Tierを開き、「Web Services」を選択します。 「項目」セクションで、「Webサービス・プロキシ」を選択します。

    図10-3 Webサービス・プロキシを作成するための新規ギャラリ

    図10-3の説明は次にあります。
    「図10-3 Webサービス・プロキシを作成するための新規ギャラリ」の説明

    「OK」をクリックします。 Webサービス・プロキシの作成ウィザードが起動します。 「次へ」をクリックして続行します。

  3. ステップ1のWebサービス記述ページで、次の操作を実行します。

    • WSDLドキュメントURL: 次のURLを入力します。

      http://host:port/CustomerService/CustomerService?WSDL

      hostは、Oracle Application Serverを実行しているマシンの名前を、portは、Oracle HTTP ServerまたはOC4JがリスニングしているHTTPポートを指定します。

    • マッピング・ファイル: 空白のままにします。

    図10-4 Webサービス・プロキシの作成ウィザード、ステップ1、Webサービス記述

    図10-4の説明は次にあります。
    「図10-4 Webサービス・プロキシの作成ウィザード、ステップ1、Webサービス記述」の説明

    「次へ」をクリックします。 何も実行されない場合は、「UDDI」ボタンをクリックします。 これによって、別のウィザードがポップアップされます。 そのウィザードで、「取消」をクリックします。 再度、「次へ」をクリックします。

  4. ステップ2のポート・エンドポイント・ページで、「外部サーバーにデプロイされたサービスに対して実行します」を選択し、「次へ」をクリックします。

    図10-5 Webサービス・プロキシの作成ウィザード、ステップ2、ポート・エンドポイント

    図10-5の説明は次にあります。
    「図10-5 Webサービス・プロキシの作成ウィザード、ステップ2、ポート・エンドポイント」の説明

  5. ステップ3のカスタム・マッピング・ページで、「次へ」をクリックします。

    図10-6 Webサービス・プロキシの作成ウィザード、ステップ3、カスタム・マッピング

    図10-6の説明は次にあります。
    「図10-6 Webサービス・プロキシの作成ウィザード、ステップ3、カスタム・マッピング」の説明

  6. ステップ4の定義済ハンドラ・ページで、「次へ」をクリックします。

    図10-7 Webサービス・プロキシの作成ウィザード、ステップ4、定義済ハンドラ

    図10-7の説明は次にあります。
    「図10-7 Webサービス・プロキシの作成ウィザード、ステップ4、定義済ハンドラ」の説明

  7. ステップ5のデフォルト・マッピング・オプション・ページで、次の操作を実行します。

    • パッケージ名: 「oracle.soademo.view.services」と入力します。

    • 生成タイプのルート・パッケージ: 「oracle.soademo.view.services.runtime」と入力します。

    • このページのすべてのオプションを選択します。

      • データ・バインディング・クラスの生成

      • 既存のタイプ・クラスの再利用

      • ラップされたパラメータのアンラップ

      • パラメータにヘッダーをマップ

    図10-8 Webサービス・プロキシの作成ウィザード、ステップ5、デフォルト・マッピング・オプション

    図10-8の説明は次にあります。
    「図10-8 Webサービス・プロキシの作成ウィザード、ステップ5、デフォルト・マッピング・オプション」の説明

    「次へ」をクリックします。

  8. ステップ6のサポート・ファイル・ページでは、JUnitを使用してテスト・ケースを記述する場合のみ、「JUnitユニット・テスト・コードの生成」を選択します。 JUnitを使用するファイルをコンパイルできるようにするには、外部サイト(例: http://www.junit.org)からJUnitライブラリ・ファイルをダウンロードする必要があります。

    「次へ」をクリックします。

    図10-9 Webサービス・プロキシの作成ウィザード、ステップ6、サポート・ファイル

    図10-9の説明は次にあります。
    「図10-9 Webサービス・プロキシの作成ウィザード、ステップ6、サポート・ファイル」の説明

  9. 最終ステップで、「終了」をクリックします。

JDeveloperによって、プロジェクトのsrcディレクトリに、Webサービス・プロキシ・ファイルが作成されます。

10.2.2 ファイルのビルド

  1. 手順8で、「JUnitユニット・テスト・コードの生成」を選択した場合は、外部サイト(例: http://www.junit.org)からJUnitをダウンロードする必要があります。

    プロジェクトをビルドする前に、JUnit jarファイルをプロジェクトに追加します。 jarファイルをプロジェクトに追加するには、クライアントの「CustomerService」プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。 「プロジェクト・プロパティ」ダイアログで、左側にある「ライブラリ」を選択し、右側にある「Jar/ディレクトリの追加」をクリックします。 JUnit jarファイルを選択して、プロジェクトに追加します。

  2. クライアントの「CustomerService」プロジェクトを右クリックし、「再ビルド」を選択します。

10.2.3 CustomerService用Webサービス・プロキシを起動するためのコードの記述

CustomerService用Webサービス・プロキシのメイン・ファイルは、src¥oracle¥soademo¥view¥services¥CustomerServiceClient.javaです。 このファイルには、CustomerServiceが提供するメソッドがリストされています。 クライアント・アプリケーションはこのクラスのメソッドをコールできるため、Webサービス・プロキシを使用してクライアント・アプリケーションをデプロイできます。

SOADemo-Clientアプリケーションでは、次の2つの場所で、CustomerService用Webサービス・プロキシを起動します。

10.2.3.1 ログインの検証

SOADemo-Clientアプリケーションでは、顧客が「Login」ボタンをクリックすると、Login.javalogin_actionメソッドを起動します。Login.javaは、SOADEMO-CLIENT¥UserInterface¥src¥oracle¥soademo¥view¥backingディレクトリにあります。

login_actionメソッドは、CustomerServiceClientfindCustomerByEmailメソッドをコールして顧客のログインを検証します。 このメソッドには、顧客がログイン・ページで入力した電子メールとパスワードの情報が渡されます。 該当する顧客が検出された場合は、顧客情報がセッションに格納され、"success"が戻されます。

public String login_action() {
   String AUTH_USER = "Authorized_User";

   // Check credentials
   FacesContext ctx = FacesContext.getCurrentInstance();

   // Call Web service to check user credentials
   try {
      oracle.soademo.view.services.CustomerServiceClient myPort =
               new oracle.soademo.view.services.CustomerServiceClient();
      System.out.println("calling " + myPort.getEndpoint());

      // test adding new customer
      Customer newCust = null;
      newCust = myPort.findCustomerByEmail(emailId.getValue().toString(),
                                               pwd.getValue().toString());

      //Store customer info on session
      if (newCust != null)
         JSFUtils.storeOnSession(ctx, "custinfo", newCust);
      else {
         FacesMessage msg = new FacesMessage("Login Failed!");
         msg.setSeverity(msg.SEVERITY_ERROR);
         FacesContext.getCurrentInstance().addMessage(null, msg);
         return null;
      }
   } catch (Exception ex) {
      FacesMessage msg = new FacesMessage("Login Failed!");
      msg.setSeverity(msg.SEVERITY_ERROR);
      FacesContext.getCurrentInstance().addMessage(null, msg);
      //ex.printStackTrace();
      return null;
   }

   // Set CurrentUser mananged bean properties

   JSFUtils.setManagedBeanValue(ctx,"Current_User.loggedIn",true);
   JSFUtils.setManagedBeanValue(ctx,"Current_User.userid",
                                    emailId.getValue().toString());
   JSFUtils.storeOnSession(ctx, AUTH_USER, "Authorized_User");

   return "success";
}

10.2.3.2 新規顧客の登録

Registerページを使用すると、新規顧客は自分自身をデータベースに追加できます。 顧客がこのページに情報を入力し、「Register」ボタンをクリックすると、Register.javaregister_actionメソッドが起動されます。Register.javaも、SOADEMO-CLIENT¥UserInterface¥src¥oracle¥soademo¥view¥backingディレクトリにあります。

register_actionメソッドは顧客情報を収集し、CustomerServiceのaddNewCustomerメソッドを起動します。

public void register_action(ActionEvent ae) {
   String AUTH_USER = "Authorized_User";
   FacesContext ctx = FacesContext.getCurrentInstance();
   Customer newCust = new Customer();
   if (password.getValue().toString().equals(password_chk.getValue().toString())) {
      // Call Web service to register new customer
      try {
         oracle.soademo.view.services.CustomerServiceClient myPort =
                        new oracle.soademo.view.services.CustomerServiceClient();
         System.out.println("calling " + myPort.getEndpoint());

         // Adding new customer info
         Address addr = new Address();

         newCust.setFname(fname.getValue().toString());
         newCust.setLname(lname.getValue().toString());
         newCust.setEmail(email.getValue().toString());
         newCust.setPhonenumber(phone.getValue().toString());
         newCust.setPassword(password.getValue().toString());

         addr.setStreet(street.getValue().toString());
         addr.setCity(city.getValue().toString());
         addr.setState(state.getValue().toString());
         addr.setZip(zip.getValue().toString());
         // For now set to US address
         addr.setCountry("USA");

         List addrList = new ArrayList();
         addrList.add(addr);
         newCust.setAddressList(addrList);
         myPort.addNewCustomer(newCust);

         // Generate successful registration message
         FacesContext.getCurrentInstance().addMessage(null,
                        new FacesMessage("Registration Successful!"));

      } catch (Exception ex) {
         FacesMessage msg = new FacesMessage("Registration Failed!");
         msg.setSeverity(msg.SEVERITY_ERROR);
         FacesContext.getCurrentInstance().addMessage(null, msg);
         FacesContext.getCurrentInstance().addMessage(null,
                              new FacesMessage(ex.getMessage()));
         ex.printStackTrace();
      }

      //Store customer info on session
      JSFUtils.storeOnSession(ctx, "custinfo", newCust);
      // Set CurrentUser mananged bean properties
      JSFUtils.setManagedBeanValue(ctx,"Current_User.loggedIn",true);
      JSFUtils.setManagedBeanValue(ctx,"Current_User.userid",
                                       email.getValue().toString());
      JSFUtils.storeOnSession(ctx, AUTH_USER, "Authorized_User");
   } else {
      // Generate  password mismatch msg
      FacesMessage msg = new FacesMessage("Your password values do not match!");
      msg.setSeverity(msg.SEVERITY_ERROR);
      FacesContext.getCurrentInstance().addMessage(null, msg);
   }
}

10.3 OrderBookingESBプロジェクトの起動

OrderBookingESBプロジェクト用のWebサービス・プロキシの作成は、CustomerService用のプロキシの作成とは若干異なります。これは、OrderBookingESBがESBプロジェクトであるためです。

10.3.1 具体的なWSDL URLの取得

Webサービス・プロキシの作成ウィザードを実行するには、OrderBookingESB用のWSDLを戻す具体的なURLが必要です。 具体的なURLは、ESB Consoleを使用して取得できます。

  1. 次のURLを使用して、ESB Consoleにアクセスします。

    http://hostname:port/esb/esb/EsbConsole.html

    hostnameは、Oracle Application Serverを実行しているマシンの名前を、portは、Oracle HTTP ServerまたはOC4JがリスニングしているHTTPポートを指定します。

  2. ESB Consoleの左側で、「OrderBookingService」を選択します。 これが、OrderBookingESBプロジェクトの起点になります。

  3. ESB Consoleの右側で、「定義」タブを選択します。 ページが図10-10のように表示されることを確認します。

    図10-10 OrderBookingServiceの「定義」タブのページが表示されたESB Console

    図10-10の説明は次にあります。
    「図10-10 OrderBookingServiceの「定義」タブのページが表示されたESB Console」の説明

  4. 具体的なURLをWebサービス・プロキシの作成ウィザードで貼り付けできるようにコピーします。 また、WSDLの内容を表示する場合は、そのURLをクリックすることもできます。

10.3.2 クライアントのプロジェクトの作成とWebサービス・プロキシの作成

  1. 使用しているクライアント・アプリケーションにプロジェクトを作成し、OrderBookingESB用のWebサービス・プロキシを含めます。 最初に、クライアント・アプリケーションに空のプロジェクトを作成します。

    1. クライアント・アプリケーションを右クリックし、「新規プロジェクト」を選択します。

    2. 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Projects」を選択します。 「項目」セクションで、「空のプロジェクト」を選択します。

      図10-11 空のプロジェクトを作成するための新規ギャラリ

      図10-11の説明は次にあります。
      「図10-11 空のプロジェクトを作成するための新規ギャラリ」の説明

      「OK」をクリックします。

    3. 「プロジェクトの作成」ダイアログで、「プロジェクト名」フィールドに「OrderService」と入力します。

      図10-12 OrderService Webサービス・プロキシ・プロジェクトに関する「プロジェクトの作成」ダイアログ

      図10-12の説明は次にあります。
      「図10-12 OrderService Webサービス・プロキシ・プロジェクトに関する「プロジェクトの作成」ダイアログ」の説明

      「OK」をクリックします。

      アプリケーション・ナビゲータで、クライアント・アプリケーションの下に空のOrderServiceプロジェクトが表示されていることを確認します。

  2. 「OrderService」プロジェクトを右クリックし、「新規」を選択します。 新規ギャラリの「カテゴリ」セクションで、Business Tierを開き、「Web Services」を選択します。 「項目」セクションで、「Webサービス・プロキシ」を選択します。

    図10-13 Webサービス・プロキシを作成するための新規ギャラリ

    図10-13の説明は次にあります。
    「図10-13 Webサービス・プロキシを作成するための新規ギャラリ」の説明

    「OK」をクリックします。 Webサービス・プロキシの作成ウィザードが起動します。 「次へ」をクリックして続行します。

  3. ステップ1のWebサービス記述ページで、次の操作を実行します。

    • WSDLドキュメントURL: OrderBookingESB用のURLを入力します。 このURLを取得する方法については、第10.3.1項「具体的なWSDL URLの取得」を参照してください。

    • マッピング・ファイル: 空白のままにします。

    • WSDLをプロジェクトにコピー: このオプションは選択しません。

    図10-14 Webサービス・プロキシの作成ウィザード、ステップ1、Webサービス記述

    図10-14の説明は次にあります。
    「図10-14 Webサービス・プロキシの作成ウィザード、ステップ1、Webサービス記述」の説明

    「次へ」をクリックします。 何も実行されない場合は、「UDDI」ボタンをクリックします。 これによって、別のウィザードがポップアップされます。 そのウィザードで、「取消」をクリックします。 再度、「次へ」をクリックします。

  4. ステップ2のポート・エンドポイント・ページで、「外部サーバーにデプロイされたサービスに対して実行します」を選択します。

    「エンドポイントURL」で、URLを次のように編集します。

    • localhostは、OrderBookingESBプロジェクトを実行しているマシンの名前に置き換えます。

    • 必要に応じて、ポート番号を検証して修正します。

    「次へ」をクリックします。

    図10-15 Webサービス・プロキシの作成ウィザード、ステップ2、ポート・エンドポイント

    図10-15の説明は次にあります。
    「図10-15 Webサービス・プロキシの作成ウィザード、ステップ2、ポート・エンドポイント」の説明

  5. ステップ3のカスタム・マッピング・ページで、「次へ」をクリックします。

    図10-16 Webサービス・プロキシの作成ウィザード、ステップ3、カスタム・マッピング

    図10-16の説明は次にあります。
    「図10-16 Webサービス・プロキシの作成ウィザード、ステップ3、カスタム・マッピング」の説明

  6. ステップ4の定義済ハンドラ・ページで、「次へ」をクリックします。

    図10-17 Webサービス・プロキシの作成ウィザード、ステップ4、定義済ハンドラ

    図10-17の説明は次にあります。
    「図10-17 Webサービス・プロキシの作成ウィザード、ステップ4、定義済ハンドラ」の説明

  7. ステップ5のデフォルト・マッピング・オプション・ページで、次の操作を実行します。

    • パッケージ名: 「oracle.soademo.view.services」と入力します。

    • 生成タイプのルート・パッケージ: 「com.globalcompany.ns.order」と入力します。

    • このページのすべてのオプションを選択します。

      • データ・バインディング・クラスの生成

      • 既存のタイプ・クラスの再利用

      • ラップされたパラメータのアンラップ

      • パラメータにヘッダーをマップ

    図10-18 Webサービス・プロキシの作成ウィザード、ステップ5、デフォルト・マッピング・オプション

    図10-18の説明は次にあります。
    「図10-18 Webサービス・プロキシの作成ウィザード、ステップ5、デフォルト・マッピング・オプション」の説明

    「次へ」をクリックします。

  8. ステップ6のサポート・ファイル・ページでは、JUnitを使用してテスト・ケースを記述する場合のみ、「JUnitユニット・テスト・コードの生成」を選択します。 JUnitを使用するファイルをコンパイルできるようにするには、外部サイト(例: http://www.junit.org)からJUnitライブラリ・ファイルをダウンロードする必要があります。

    「次へ」をクリックします。

    図10-19 Webサービス・プロキシの作成ウィザード、ステップ6、サポート・ファイル

    図10-19の説明は次にあります。
    「図10-19 Webサービス・プロキシの作成ウィザード、ステップ6、サポート・ファイル」の説明

  9. 最終ステップで、「終了」をクリックします。

10.3.3 ファイルのビルド

  1. 手順8で、「JUnitユニット・テスト・コードの生成」を選択した場合は、外部サイト(例: http://www.junit.org)からJUnitをダウンロードする必要があります。

    プロジェクトをビルドする前に、JUnit jarファイルをプロジェクトに追加します。 jarファイルをプロジェクトに追加するには、クライアントの「OrderService」プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。 「プロジェクト・プロパティ」ダイアログで、左側にある「ライブラリ」を選択し、右側にある「Jar/ディレクトリの追加」をクリックします。 JUnit jarファイルを選択して、プロジェクトに追加します。

  2. クライアントの「OrderService」プロジェクトを右クリックし、「再ビルド」を選択します。

10.3.4 OrderBookingESB用Webサービス・プロキシを起動するためのコードの記述

SOADemo-ClientアプリケーションのShopping Cartページで、顧客は「Place Order」ボタンをクリックして注文を発行します。 このボタンによって、(SOADEMO-CLIENT¥UserInterface¥src¥oracle¥soademo¥view¥backingディレクトリにある)ShoppingCart.javaPlaceOrder_actionメソッドが起動されます。

PlaceOrder_actionメソッドは、次の処理を実行します。

  • OrderBookingESB用のプロキシである__soap_initiate_pptClientのインスタンスを作成します。 このクラスは、Webサービス・プロキシ・ウィザードによって生成されています。

    使用している環境で、生成されたファイルの名前を確認します。 クラスの名前が若干異なる場合があります(例: __soap_OrderBookingService_initiate_pptClient.java)。

  • ショッピング・カートから注文情報を取得します。

  • セッションから顧客情報を取得します。

  • 発注を作成し、注文と顧客の情報を移入します。

  • プロキシのinitiateをコールして、OrderBookingESBを起動します。

  • ショッピング・カートを空に設定します。

太字の行は、Webサービス・プロキシを起動するコードの位置を示しています。

public String PlaceOrder_action() {
    // Place order
    FacesContext ctx = FacesContext.getCurrentInstance();

    // Get order items from Cart
    Cart cartBean = (Cart) JSFUtils.getManagedObject("Shopping_Cart");
    List CartItemList =  cartBean.getItemList();

    // Get Customer info from session
    Customer currentCustomer = (Customer) JSFUtils.getFromSession(ctx,
                                               "custinfo");

    try {
        oracle.soademo.view.services.__soap_initiate_pptClient myPort =
                    new oracle.soademo.view.services.__soap_initiate_pptClient();
        System.out.println("calling " + myPort.getEndpoint());

        PurchaseOrderType po = new PurchaseOrderType();

        // Customer ID
        po.setCustID(currentCustomer.getCustid());

        // Need to randomly set ID for now since WS won't auto-assign
        po.setID("" + (int)(Math.random() * 1000));

        // Order Info
        OrderInfoType order  = new OrderInfoType();
        order.setOrderPrice(cartBean.getOrderTotal());
        order.setOrderComments("This order was issued from the SOA Retail
                                                                 Client.");
        Calendar caldate = Calendar.getInstance();
        order.setOrderDate(caldate);
        order.setOrderStatus("pending");

        po.setOrderInfo(order);

        // Order Items
        OrderItemsType oitems = new OrderItemsType();

        ItemType[] items = new ItemType[CartItemList.size()];

        for (int i = 0; i < CartItemList.size(); i++) {
            items[i] = (ItemType) CartItemList.get(i);
        }
        oitems.setItem(items);
        po.setOrderItems(oitems);

        // Supplier Info
        // For now hard code fictional Supplier
        SupplierInfoType supplier = new SupplierInfoType();
        supplier.setSupplierName("Express Deliveries");

        // Supplier has 10% discount
        supplier.setSupplierPrice(cartBean.getOrderTotal().
                             subtract(cartBean.getOrderTotal().movePointLeft(1)));
        po.setSupplierInfo(supplier);

        // Contact Info
        ContactType contact = new ContactType();
        contact.setEmailAddress(currentCustomer.getEmail());
        contact.setPhoneNumber(currentCustomer.getPhonenumber());
        po.setUserContact(contact);

        // Initiate Order
        myPort.initiate(po);
        System.out.println("Order submitted...");
    }
    catch (Exception ex) {
        ex.printStackTrace();
    }

    //  report success
    ctx.addMessage(null, new FacesMessage("Order Submitted!"));
    cartBean.EmptyCart();
    return "home";
}

10.4 クライアント・アプリケーションのデプロイ

この項では、soademo_101310_prod.zipファイルの事前に作成されたクライアント・アプリケーションをデプロイする方法について説明します。

このzipファイルからSOADEMO-Clientアプリケーションをデプロイする手順は、次のとおりです。

  1. JDeveloperで、SOADEMO-CLIENT¥SOADEMO-CLIENT.jwsを開きます。 このファイルは、SOADEMO-Clientアプリケーション用のプロジェクト・ファイルです。

  2. この手順は、次の条件に一致する場合のみ必要です。

    • JDeveloperとOracle Application Serverを異なるマシンで実行している場合

    • インストールしたOracle Application Serverが、8888以外のポートのHTTPリクエストをリスニングしている場合

    前述の条件のいずれか、または両方に一致する場合は、次の手順を実行する必要があります。

    1. 次のファイルを編集します。

      • SOADEMO-CLIENT¥CustomerService¥src¥oracle¥soademo¥view¥services¥runtime¥CustomerServiceSoapHttp_Stub.java

        このファイルには、JDeveloperのアプリケーション・ナビゲータから次のようにアクセスできます。

        i. JDeveloperで、「表示」→「構造」の順に選択して、構造ウィンドウを表示します。

        ii. アプリケーション・ナビゲータで、「SOADEMO-CLIENT」「CustomerService」「アプリケーション・ソース」「oracle.soademo.view」「サービス」「CustomerSvcProxy」の順に選択します。

        iii. 構造ウィンドウで、「CustomerServiceSoapHttp_Stub.java」をダブルクリックします。

      • SOADEMO-CLIENT¥OrderService¥src¥oracle¥soademo¥view¥services¥runtime¥__soap_initiate_ppt_Stub.java

        このファイルには、JDeveloperのアプリケーション・ナビゲータから次のようにアクセスできます。

        i. JDeveloperで、「表示」→「構造」の順に選択して、構造ウィンドウを表示します。

        ii. アプリケーション・ナビゲータで、「SOADEMO-CLIENT」「OrderService」「アプリケーション・ソース」「oracle.soademo.view」「サービス」「Initiate_pptServiceProxy」の順に選択します。

        iii. 構造ウィンドウで、「__soap_initiate_ppt_Stub.java」をダブルクリックします。

      このファイルに、次の変更を加えます。

      • localhostを検索して、Oracle Application Serverを実行しているマシンの完全修飾名(ドメイン名を含む)に置き換えます。

      • 8888を検索して、使用している環境のHTTPポートに置き換えます。

    2. 次のファイルを削除(または名前変更)します。

      • SOADEMO-CLIENT¥UserInterface¥deploy¥soaui.war

      • SOADEMO-CLIENT¥UserInterface¥deploy¥soaui.ear

    3. 削除したファイルを再生成します。

      i. 「SOADEMO-CLIENT」「UserInterface」「リソース」の順に開きます。

      ii. 「soaui.deploy」を右クリックし、「WARファイルへデプロイ」を選択します。

      iii. 「soaui.deploy」を右クリックし、「EARファイルへデプロイ」を選択します。

  3. 「SOADEMO-CLIENT」「アセンブリ」「アプリケーション・ソース」の順に開きます。

  4. 「SOADEMO.deploy」を右クリックし、「配布先」「ApplicationServerConnection」の順に選択します。ApplicationServerConnectionは、Oracle Application Serverインストールへの接続を指定します。

  5. 「アプリケーションの構成」ダイアログで、「OK」をクリックします。