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

前へ
前へ
 
次へ
次へ
 

6 RapidServiceプロジェクトの作成

この章では、RapidServiceプロジェクトの作成方法について説明します。 項目は次のとおりです。

6.1 RapidServiceプロジェクトの概要

RapidServiceプロジェクトは、顧客注文に対して価格の見積りを提示するサプライヤを表します。 RapidServiceと競合する、もう1つのサプライヤはSelectManufacturerです。 顧客の注文に対してより低い見積金額を提示したサプライヤが注文を履行します。

RapidServiceプロジェクトとCreditServiceプロジェクトの場合は、設計時にディスクリプタが生成されます。 RapidServiceプロジェクトはボトムアップ方法で開発します。Javaクラスから開始し、そのJavaクラスからWSDLファイルを開発します。 これとは逆に、CreditServiceはトップダウン方法で開発します。WSDLから開始し、そのWSDLファイルを使用してJavaクラスを生成します。

6.2 RapidService用の新規プロジェクトの作成

最初に、JDeveloperでRapidService用の新規プロジェクトを作成します。手順は次のとおりです。

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

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

    図6-1 RapidServiceプロジェクト用の新規ギャラリ

    図6-1の説明は次にあります。
    「図6-1 RapidServiceプロジェクト用の新規ギャラリ」の説明

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

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

    図6-2 RapidServiceプロジェクトに関する「プロジェクトの作成」ダイアログ

    図6-2の説明は次にあります。
    「図6-2 RapidServiceプロジェクトに関する「プロジェクトの作成」ダイアログ」の説明

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

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

  4. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

6.3 RapidServiceプロジェクトへのJSR-181ライブラリの追加

RapidServiceプロジェクトは、JSR-181ライブラリを追加してから、コンパイルおよびデプロイする必要があります。 第6.6項「RequestQuote.javaの作成」で作成するRequestQuote.javaには、JSR-181注釈が含まれています。

  1. 「RapidService」プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。 「プロジェクト・プロパティ」ダイアログで、左側にある「ライブラリ」を選択します。

    図6-3 「プロジェクト・プロパティ」ダイアログ

    図6-3の説明は次にあります。
    「図6-3 「プロジェクト・プロパティ」ダイアログ」の説明

  2. 「ライブラリの追加」をクリックします。

  3. 「ライブラリの追加」ダイアログで、「拡張」の下にある「JSR-181 Web Services」を選択します。

    図6-4 「ライブラリの追加」ダイアログ

    図6-4の説明は次にあります。
    「図6-4 「ライブラリの追加」ダイアログ」の説明

  4. 「ライブラリの追加」ダイアログで、「OK」をクリックします。 「プロジェクト・プロパティ」ダイアログで、JSR-181ライブラリがリストに追加されていることを確認します。

    図6-5 JSR-181ライブラリが追加された「プロジェクト・プロパティ」ダイアログ

    図6-5の説明は次にあります。
    「図6-5 JSR-181ライブラリが追加された「プロジェクト・プロパティ」ダイアログ」の説明

  5. 「プロジェクト・プロパティ」ダイアログで、「OK」をクリックします。

  6. アプリケーション・ナビゲータで「RapidService」を選択し、「ファイル」→「保存」の順に選択して作業内容を保存します。

6.4 Item.javaの作成

  1. 「RapidService」プロジェクトを右クリックし、「新規」を選択します。 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Simple Files」を選択します。 「項目」セクションで、「Javaクラス」を選択します。

    図6-6 シンプルJavaクラスを作成するための新規ギャラリ

    図6-6の説明は次にあります。
    「図6-6 シンプルJavaクラスを作成するための新規ギャラリ」の説明

    「OK」 をクリックします。 「Javaクラスの作成」ダイアログが表示されます。

  2. 「Javaクラスの作成」ダイアログで、次の値を入力します。

    • 名前: 「Item」と入力します。

    • パッケージ: 「org.soademo.rapidservice.types」と入力します。

    • 拡張対象: 「java.lang.Object」と入力します。

    • Public: このオプションを選択します。

    • デフォルトのコンストラクタを生成: このオプションを選択します。

    • mainメソッドの生成: 選択しません。

    「OK」をクリックします。 JDeveloperのエディタに、Item.javaファイルが表示されます。

  3. このファイルを編集して、次の行を含めます。

    package org.soademo.rapidservice.types;
    
    public class Item {
        public Item() {
        }
    
        String itemId;
        long Quantity;
    
        public void setItemId(String itemId) {
            this.itemId = itemId;
        }
    
        public String getItemId() {
            return itemId;
        }
    
        public void setQuantity(long quantity) {
            this.Quantity = quantity;
        }
    
        public long getQuantity() {
            return Quantity;
        }
    }
    
    
  4. 「ファイル」→「保存」の順に選択し、ファイルを保存します。

6.5 Quote.javaの作成

  1. 「RapidService」プロジェクトを右クリックし、「新規」を選択します。 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Simple Files」を選択します。 「項目」セクションで、「Javaクラス」を選択します。

    図6-7 シンプルJavaクラスを作成するための「新規ギャラリ」ダイアログ

    図6-7の説明は次にあります。
    「図6-7 シンプルJavaクラスを作成するための「新規ギャラリ」ダイアログ」の説明

    「OK」をクリックします。 「Javaクラスの作成」ダイアログが表示されます。

  2. 「Javaクラスの作成」ダイアログで、次の値を入力します。

    • 名前: 「Quote」と入力します。

    • パッケージ: 「org.soademo.rapidservice.types」と入力します。

    • 拡張対象: 「java.lang.Object」と入力します。

    • Public: このオプションを選択します。

    • デフォルトのコンストラクタを生成: このオプションを選択します。

    • mainメソッドの生成: 選択しません。

    図6-8 Quote.javaに関する「Javaクラスの作成」ダイアログ

    図6-8の説明は次にあります。
    「図6-8 Quote.javaに関する「Javaクラスの作成」ダイアログ」の説明

    「OK」をクリックします。 JDeveloperのエディタに、Quote.javaファイルが表示されます。

  3. このファイルを編集して、次の行を含めます。

    package org.soademo.rapidservice.types;
    
    public class Quote implements java.io.Serializable {
        protected java.lang.String supplierName;
        protected java.lang.String supplierPrice;
    
        public Quote() {
        }
    
        public java.lang.String getSupplierName() {
            return supplierName;
        }
    
        public void setSupplierName(java.lang.String supplierName) {
            this.supplierName = supplierName;
        }
    
        public java.lang.String getSupplierPrice() {
            return supplierPrice;
        }
    
        public void setSupplierPrice(java.lang.String supplierPrice) {
            this.supplierPrice = supplierPrice;
        }
    }
    
    
  4. 「ファイル」→「保存」の順に選択し、ファイルを保存します。

6.6 RequestQuote.javaの作成

  1. 「RapidService」プロジェクトを右クリックし、「新規」を選択します。 新規ギャラリの「カテゴリ」セクションで、「General」を開き、「Simple Files」を選択します。 「項目」セクションで、「Javaクラス」を選択します。

    図6-9 シンプルJavaクラスを作成するための新規ギャラリ

    図6-9の説明は次にあります。
    「図6-9 シンプルJavaクラスを作成するための新規ギャラリ」の説明

    「OK」をクリックします。 「Javaクラスの作成」ダイアログが表示されます。

  2. 「Javaクラスの作成」ダイアログで、次の値を入力します。

    • 名前: 「RequestQuote」と入力します。

    • パッケージ: 「org.soademo.rapidservice」と入力します。 この値は、以前作成したJavaクラスの値とは異なることに注意してください。

    • 拡張対象: 「java.lang.Object」と入力します。

    • Public: このオプションを選択します。

    • デフォルトのコンストラクタを生成: このオプションを選択します。

    • mainメソッドの生成: 選択しません。

    図6-10 RequestQuote.javaに関する「Javaクラスの作成」ダイアログ

    図6-10の説明は次にあります。
    「図6-10 RequestQuote.javaに関する「Javaクラスの作成」ダイアログ」の説明

    「OK」をクリックします。 JDeveloperのエディタに、RequestQuote.javaファイルが表示されます。

  3. このファイルを編集して、次の行を含めます。

    package org.soademo.rapidservice;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    
    import org.soademo.rapidservice.types.Item;
    import org.soademo.rapidservice.types.Quote;
    
    @WebService(serviceName="RapidService",
                targetNamespace="http://www.globalcompany.com/ns/rapidservice")
    
    public class RequestQuote {
        public RequestQuote() {
        }
    
        @WebMethod(operationName="OrderQuote")
        public Quote processRequestQuote(String productName, String itenType,
                                         String partnum, String quantity,
                                         String price) {
            Quote priceQuote = new Quote();
            priceQuote.setSupplierName("RapidDistributors");
            priceQuote.setSupplierPrice("5000");
            return priceQuote;
        }
    
        @WebMethod(operationName="POItemsQuote")
        public Quote processQuote(Item[] items){
            Long totalPrice = new Long(0);
            for ( int i=0; i<items.length; i++)  {
                Item localItem = items[i];
                totalPrice += localItem.getQuantity()*110;
            }
            Quote priceQuote = new Quote();
            priceQuote.setSupplierName("RapidDistributors");
            priceQuote.setSupplierPrice(totalPrice.toString());
            return priceQuote;
        }
    }
    
    
  4. 「ファイル」→「保存」の順に選択し、ファイルを保存します。

6.7 アプリケーション・ナビゲータでのファイルの確認

アプリケーション・ナビゲータで、RapidServiceプロジェクト用の次のファイルが表示されていることを確認します。

図6-11 RapidService用のファイルが表示されたアプリケーション・ナビゲータ

図6-11の説明は次にあります。
「図6-11 RapidService用のファイルが表示されたアプリケーション・ナビゲータ」の説明

6.8 ファイルのコンパイル

「RapidService」プロジェクトを右クリックし、「再ビルド」を選択します。 エラーがないかログ・ウィンドウで確認します。

6.9 Webサービスとしてのプロジェクトの公開

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

    図6-12 Java Webサービスを生成するための新規ギャラリ

    図6-12の説明は次にあります。
    「図6-12 Java Webサービスを生成するための新規ギャラリ」の説明

    「OK」をクリックします。 「J2EE Webサービス・バージョンの選択」ダイアログが表示されます。

  2. 「J2EE Webサービス・バージョンの選択」ダイアログで「J2EE 1.4 (JAX-RPC) Webサービス」を選択し、「OK」をクリックします。

    図6-13 「J2EE Webサービス・バージョンの選択」ダイアログ

    図6-13の説明は次にあります。
    「図6-13 「J2EE Webサービス・バージョンの選択」ダイアログ」の説明

    Java J2EE 1.4 Webサービスの作成ウィザードが起動します。 「次へ」をクリックして開始します。

  3. ステップ1のクラス・ページで、次の操作を実行します。

    • Webサービス名: 「RapidService」と入力します。

    • 公開するコンポーネント: ドロップダウンから「org.soademo.rapidservice.RequestQuote」を選択します。

    • サービス・エンドポイント・インタフェースの自動生成: このオプションを選択します(自動的に選択されます)。

    • サービス・エンドポイント・インタフェース: 「org.soademo.rapidservice.RequestQuotePortType」を選択します(自動的に入力されます)。

    • SOAP 1.1バインディング: このオプションを選択します。

    • SOAP 1.2バインディング: 選択しません。

    • WSIFバインディング: 選択しません。

    • クラスに注釈を生成: このオプションを選択します。

    図6-14 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ1、クラス

    図6-14の説明は次にあります。
    「図6-14 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ1、クラス」の説明

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

  4. ステップ2のメッセージの書式ページで、次の操作を実行します。

    • SOAPメッセージ形式: 「ドキュメント/ラップ」を選択します。

    • SOAPポートへのRESTアクセスの有効化: 選択しません。

    • 修飾要素を使用してスキーマを生成: このオプションを選択します。

    • DIMEエンコーディングの使用: 選択しません。

    図6-15 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ2、メッセージの書式

    図6-15の説明は次にあります。
    「図6-15 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ2、メッセージの書式」の説明

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

  5. ステップ3のカスタムDataTypeシリアライザを指定ページで、「次へ」をクリックします。

    図6-16 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ3、カスタムDataTypeシリアライザを指定

    図6-16の説明は次にあります。
    「図6-16 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ3、カスタムDataTypeシリアライザを指定」の説明

  6. ステップ4のマッピング・ページで、「次へ」をクリックします。

    図6-17 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ4、マッピング

    図6-17の説明は次にあります。
    「図6-17 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ4、マッピング」の説明

  7. ステップ5のメソッド・ページで、「processQuote」「processRequestQuote」を選択します。

    図6-18 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ5、メソッド

    図6-18の説明は次にあります。
    「図6-18 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ5、メソッド」の説明

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

  8. ステップ6のハンドラ詳細ページで、「次へ」をクリックします。

    図6-19 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ6、ハンドラ詳細

    図6-19の説明は次にあります。
    「図6-19 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ6、ハンドラ詳細」の説明

  9. ステップ7の状態ページで、「次へ」をクリックします。

    図6-20 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ7、状態

    図6-20の説明は次にあります。
    「図6-20 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ7、状態」の説明

  10. ステップ8の追加クラス・ページで、「次へ」をクリックします。

    図6-21 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ8、追加クラス

    図6-21の説明は次にあります。
    「図6-21 Java J2EE 1.4 Webサービスの作成ウィザード: ステップ8、追加クラス」の説明

  11. 終了ページで、「終了」をクリックします。

JDeveloperのエディタに、RapidService.wsdlファイルが表示されます。 RapidService.wsdlは、このウィザードで作成されたファイルの1つです。

次の項では、JDeveloperで作成されたファイルを確認します。

6.10 生成されたWSDLファイルのホスト名とポートの検証

RapidService.wsdlファイルのホスト名とポートが正しいかどうかを検証します。

  1. RapidService.wsdlがエディタに表示されていない場合は、アプリケーション・ナビゲータでダブルクリックします。 このファイルは、「RapidService」「Webコンテンツ」「WEB-INF¥wsdl」の下にあります。

  2. 「サービス」の下にある「RequestQuoteSoapHttpPort」を開きます。

    図6-22 RapidService.wsdl

    図6-22の説明は次にあります。
    「図6-22 RapidService.wsdl」の説明

  3. 「soap:address」を右クリックし、「プロパティ」を選択します。 「soap:addressのプロパティ」ダイアログが表示されます。

  4. 「soap:addressのプロパティ」ダイアログで、ホスト名とポートが正しいかどうかを検証します。 ホスト名は、Oracle Application Serverを実行しているマシンの名前、ポートは、Oracle HTTP ServerまたはOC4JがリスニングしているHTTPポートを指定します。

    図6-23 RapidService.wsdlに関する「soap:addressのプロパティ」ダイアログ

    図6-23の説明は次にあります。
    「図6-23 RapidService.wsdlに関する「soap:addressのプロパティ」ダイアログ」の説明

  5. 変更した場合は、変更内容を保存します。

6.11 アプリケーション・ナビゲータでのファイルの確認

このウィザードを完了した後は、アプリケーション・ナビゲータおよび構造ウィンドウで、次のファイルが表示されていることを確認します。

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

  2. アプリケーション・ナビゲータで、「SOADEMO」「RapidService」「アプリケーション・ソース」「org.soademo.rapidservice」「RapidService」の順に選択します。

    構造ウィンドウで、次のファイルが表示されていることを確認します。

    • RequestQuote.java

    • RequestQuotePortType.java

    • RapidService.wsdl

    • RapidService-java-wsdl-mapping.xml

    図6-24 作成したファイルが表示された構造ウィンドウ

    図6-24の説明は次にあります。
    「図6-24 作成したファイルが表示された構造ウィンドウ」の説明

  3. アプリケーション・ナビゲータで、「SOADEMO」「RapidService」「Webコンテンツ」の順にノードを開いて、JDeveloperで作成された他のファイルを確認します。 図6-24を参照してください。

6.12 RapidServiceへのコンテキスト・ルートの設定

  1. 「RapidService」プロジェクトをダブルクリックして、「プロジェクト・プロパティ」ダイアログを表示します。

  2. 左側で、「J2EEアプリケーション」を選択します。

  3. 「J2EE Webアプリケーション名」および「J2EE Webコンテキスト・ルート」の値を「RapidService」に設定します。

    図6-25 RapidServiceに関する「プロジェクト・プロパティ」ダイアログ

    図6-25の説明は次にあります。
    「図6-25 RapidServiceに関する「プロジェクト・プロパティ」ダイアログ」の説明

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

  5. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

6.13 デプロイメント・ディスクリプタの編集

  1. デプロイメント・ディスクリプタ(「リソース」「WebServices.deploy」)をダブルクリックして、「WARデプロイメント・プロファイルのプロパティ」ダイアログを表示します。

  2. 左側で、「一般」を選択します。

  3. 「エンタープライズ・アプリケーション名」「RapidService」に設定します。

    図6-26 「WARデプロイメント・プロファイルのプロパティ」ダイアログの「一般」セクション

    図6-26の説明は次にあります。
    「図6-26 「WARデプロイメント・プロファイルのプロパティ」ダイアログの「一般」セクション」の説明

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

  5. 「ファイル」→「保存」の順に選択して、作業内容を保存します。

6.14 RapidServiceプロジェクトのデプロイ

「リソース」を開いて「WebServices.deploy」を右クリックし、「配布先」→「SoademoApplicationServer」の順に選択します。SoademoApplicationServerは、使用しているアプリケーション・サーバーへの接続を指定します。

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

図6-27 「アプリケーションの構成」ダイアログ

図6-27の説明は次にあります。
「図6-27 「アプリケーションの構成」ダイアログ」の説明

6.15 RapidServiceに対するWSDLの表示

RapidServiceに対するWSDLは、次のURLをブラウザに入力してアクセスできます。

http://hostname:port/RapidService/RequestQuoteSoapHttpPort?WSDL

hostnameには、Oracle Application Serverが実行されているマシンの名前を入力します。

portには、Oracle HTTP ServerまたはOC4JがリスニングしているHTTPポートを入力します。 デフォルト・ポートは8888です。

RapidServiceは、Application Server ControlのOC4J: ホーム・ページの「Webサービス」タブ(図6-28)と「アプリケーション」タブ(図6-29)に表示されます。

図6-28 RapidService Webサービスが表示されたOC4J: ホーム・ページの「Webサービス」タブ

図6-28の説明は次にあります。
「図6-28 RapidService Webサービスが表示されたOC4J: ホーム・ページの「Webサービス」タブ」の説明

図6-29 RapidServiceアプリケーションが表示されたOC4J: ホーム・ページの「アプリケーション」タブ

図6-29の説明は次にあります。
「図6-29 RapidServiceアプリケーションが表示されたOC4J: ホーム・ページの「アプリケーション」タブ」の説明