ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite、WebCenter PortalおよびADFアップグレード・ガイド
11g リリース1 (11.1.1.8.0)
B55926-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

A 例: SOA Order Bookingのアップグレードと再デプロイ

この付録では、複合的なOracle SOA Suite (SOA)アプリケーションをOracle Application Server 10g リリース3 (10.1.3.3)からOracle Fusion Middlewareリリース11 (11.1.1.0.0)にアップグレードする手順について、順を追って説明します。

この手順を通して、Oracle SOA Suite環境およびアプリケーションのアップグレード処理全体の例を示します。

この付録の具体的な内容は次のとおりです。

A.1 SOA Order Bookingアプリケーションについて

Oracle Application Server 10g リリース3 (10.1.3.1.0)でサンプル・アプリケーションとして提供されたSOA Order Bookingアプリケーションでは、Oracle Application Server 10g リリース3 (10.1.3.1.0)の多くの主要機能およびコンポーネントの実際の使用例を示しています。

SOA Order Bookingアプリケーションの詳細は、『Oracle SOA Suiteチュートリアル』および『Oracle SOA Suiteクイック・スタート・ガイド』を参照してください。この2つのドキュメントは、Oracle Technology NetworkのOracle Application Server 10g リリース3 (10.1.3.1.0)ドキュメント・ライブラリから入手できます。

http://www.oracle.com/technology/documentation/index.html

Oracle Application Server 10g リリース3 (10.1.3.4)パッチ・セットにより、共通の問題に対する一連の改善と修正が適用されます。また、10g リリース3 (10.1.3.4)用にテスト済の改善されたSOA Order Bookingの新バージョンもリリースされました。

この付録は、SOA Order Bookingアプリケーションと、このアプリケーションで使用されているテクノロジを理解しているユーザーを対象としています。

図A-1は、Oracle Application Server 10g リリース3 (10.1.3.4)にデプロイされたSOA Order Bookingデモのログイン・ページを示しています。

図A-1 10g リリース3 (10.1.3.4)にデプロイされたSOA Order Bookingアプリケーション

図A-1の説明が続きます
「図A-1 10g リリース3 (10.1.3.4)にデプロイされたSOA Order Bookingアプリケーション」の説明

A.2 タスク1: SOA Order Bookingと外部パートナが稼働していることの確認

SOA Order Bookingアプリケーションを11gに移行する前に、次の前提条件を満たしていることを確認する必要があります。

A.2.1 タスク1a: SOA Order BookingがOracle Application Server 10g リリース3 (10.1.3.4)に正常にデプロイされていることの確認

SOA Order Bookingアプリケーションを11gに移行する前に、次の条件を満たす必要があります。

  • Oracle Application Server 10g リリース3 (10.1.3.1.0)のインストールと構成作業、および10g リリース3 (10.1.3.4)パッチ・セットの適用作業が完了していること

  • Oracle JDeveloper 10g リリース3 (10.1.3.4)のインストールと構成作業が完了していること

  • SOA Order Bookingデモ・アプリケーションの、更新された10g リリース3 (10.1.3.4)バージョンのダウンロード作業が完了していること

    10g リリース3 (10.1.3.4)のSOA Order Bookingデモ・アプリケーションは、Oracle Technology Network (OTN)の次の場所からダウンロードできます。

    http://www.oracle.com/technology/products/ias/bpel/
    
  • 10g リリース3 (10.1.3.1.0)の『Oracle SOA Suiteチュートリアル』または『Oracle SOA Suiteクイック・スタート・ガイド』の指示に従って、SOA Order BookingアプリケーションをOracle Application Server g リリース3 (10.1.3.4)にデプロイしていること

    これには、SOA Order Bookingの10g リリース3 (10.1.3.4)アプリケーションのデータベース・スキーマを、使用可能なデータベースにインストールすることも含まれます。

A.2.2 タスク1b: SOA Order BookingがOracle Application Server 10g リリース3 (10.1.3.4)で現在稼働していることの確認

SOA Order Bookingアプリケーションを11gに移行する前に、アプリケーションを10g リリース3 (10.1.3.4)上でテストし、正しく動作していることを確認します。これにより、SOA Order Bookingスキーマのインストール先データベースが稼働していて、外部サービスや外部パートナも稼働していることを確認します。

たとえば、アプリケーションへのログイン、製品一覧の閲覧(図A-2)および発注が可能であることを確認してください。また、BPEL Worklist Managerを使用したBPELプロセスの監視が可能であることを確認してください。

図A-2 SOA Order Bookingアプリケーションでのアイテムの閲覧

図A-2の説明が続きます
「図A-2 SOA Order Bookingアプリケーションでのアイテムの閲覧」の説明

詳細は、Oracle Application Server 10g リリース3 (10.1.3)の『Oracle SOA Suite クイック・スタート・ガイド』の、SOA Order Bookingアプリケーションの実行と監視に関する項を参照してください。

『Oracle SOA Suiteクイック・スタート・ガイド』はOracle Application Server 10g リリース3 (10.1.3)ドキュメント・ライブラリに含まれています。ドキュメント・ライブラリはOracle Technology Network (OTN)から入手できます。

http://www.oracle.com/technology/documentation/

A.2.3 タスク1c: すべての外部パートナが使用可能であることの確認

SOA Order Bookingアプリケーションを11gにアップグレードする前に、外部パートナが(リモートWebサービスの形態で)稼働していて使用可能であることを確認する必要があります。

Oracle JDeveloper 11gがこれらの外部パートナにアクセスでき、Oracle BPEL Process Managerと、10gにデプロイされているOracle Enterprise Service Busの各サービスにアクセスできることが必要です。アクセスできない場合、アプリケーション内のプロジェクトを11gに正しく移行できません。

必要なWebサービスが使用可能であることを確認するには、11gへの移行前にOracle SOA Suiteアプリケーションの各プロジェクトを調査する必要があります。たとえば、各プロジェクトのOracle BPEL Process Manager構成ファイルを確認し、これらの構成ファイルから参照されているWebサービスのURIが有効で稼働していることを確認します。

SOA Order Bookingアプリケーションでは、次のような方法でSOAOrderBookingプロジェクトの内容を確認できます。

  1. Oracle JDeveloper 10g リリース3 (10.1.3)で、SOA Order Booking 10g リリース3 (10.1.3.4)アプリケーションを開きます。

  2. SOAOrderBookingプロジェクトを展開し、「インテグレーション・コンテンツ」フォルダを展開します。

  3. 「bpel」フォルダを展開し、bpel.xmlファイル(図A-3)をダブルクリックします。

    図A-3 WSDL URLをテストするためにbpel.xmlファイルを選択

    図A-3の説明が続きます
    「図A-3 WSDL URLをテストするためにbpel.xmlファイルを選択」の説明

  4. bpel.xmlファイル内で、次のエントリを探します。

    <partnerLinkBinding name="OrderFulfillment">
            <property  name="wsdlLocation">
                  http://host.domain:port/esb/wsil/Fulfillment/OrderFulfillment?wsdl
            </property>
            <property name="preferredBindings">
                  http://www.oracle.com/esb/
            </property>
    </partnerLinkBinding>
    
  5. wsdlLocation要素のURLをブラウザにコピーし、そのURLが有効で図A-4のような出力が表示されることを確認します。

  6. WebサービスのURLが正しく表示されない場合は、アプリケーションを11gに移行する前にトラブルシューティングを実施し問題を解決します。

    たとえば、SOA Order Bookingスキーマのインストール先データベースが稼働していて、アプリケーションのすべてのコンポーネントが正常にデプロイされていることを確認します。

  7. bpel.xmlファイル内のその他のURLについても、この手順を繰り返します。

  8. 次のプロジェクトのWSDL URLに対しても同様に調査します。

    • SOAOrderBooking:

      CreditValidatingService.wsdl
      CustomerSvc.wsdl
      RapidService.wsdl
      
    • OrderBookingESB:

      OrderBooking_OrderBookingProcess.esbsvc
      OrderBooking_OrderBookingService.esbsvc
      

図A-4 Internet Explorerで表示したOrderFulfillmentのWSDL URL

図A-4の説明が続きます
「図A-4 Internet Explorerで表示したOrderFulfillmentのWSDL URL」の説明

A.3 タスク2: Oracle Fusion Middleware SOA Suiteのインストールとアップグレード

SOA Order BookingアプリケーションがOracle Application Server 10g リリース3 (10.1.3)環境で正常に稼働していることを確認した後に、新しいOracle Fusion Middleware 11g環境をインストールして環境をアップグレードします。

第6章「Oracle SOA Suite 10g環境のアップグレード」の指示に従って、SOA Order Bookingの移行と再デプロイに備え、Oracle Fusion Middleware環境を準備します。

このタスクの内容は次のとおりです。

A.4 タスク3: Oracle WebLogic Suite管理コンソールを使用した必要なリソースの構成

SOA Order Bookingデモ・アプリケーションを使用するには、SOA Order Bookingのデプロイ先のOracle WebLogic Server管理対象サーバーに、データ・ソースと一連のJMSリソースが存在している必要があります。

これらのリソースを作成するためのOracle WebLogic Server管理コンソールの使用方法の詳細は、次の項を参照してください。

A.4.1 タスク3a: SOADEMOデータ・ソースの作成

SOA Order Bookingのサンプル・アプリケーションをOracle WebLogic Serverにデプロイする前に、SOA Order Bookingスキーマがインストールされているデータベースを参照するOracle WebLogic Serverデータ・ソースを最初に定義する必要があります。

このスキーマは、Oracle Application Server 10g リリース3 (10.1.3.4)にSOA Order Bookingデモ・アプリケーションをデプロイしたときにインストールしたスキーマ(A.2項「タスク1: SOA Order Bookingと外部パートナが稼働していることの確認」を参照)と同じです。

データ・ソースを作成する手順は、次のとおりです。

  1. 管理コンソールにログインします。

  2. 「ドメイン構造」ツリーで「サービス」→「JDBC」の順に展開し、次に、「データ・ソース」を選択します。

  3. データ・ソースのサマリーページで、「新規」をクリックします。

  4. 「JDBCデータ・ソースのプロパティ」ページが表示されます。

    このページで次のプロパティを入力します。

    • 名前: soademoDS

    • JNDI名: jdbc/soademoDS

    • データベースのタイプ: Oracle

    • データベース・ドライバ: Oracleのドライバ(Thin XA)

  5. 「次へ」をクリックして、「トランザクション・オプション」ページを表示します。

  6. 「次へ」をクリックして、「接続の詳細」ページを表示します。

    • 「データベース名」: Oracle_database_system_identifer_(SID)

    • 「ホスト名」: Host_where_the_database_is_installed

    • 「ポート」: Database_listening_port_for_example_1521

    • 「データベース・ユーザー名」: soademo

    • 「パスワード」および「パスワードの確認」: soademo

  7. 「次へ」をクリックしてデータベース接続をテストします。

  8. 「次へ」をクリックして「ターゲットの選択」ページを表示し、次に「soa_server1」を選択します。

  9. 「終了」をクリックしてデータ・ソースをsoa_server1にデプロイします。

A.4.2 タスク3b: DbAdapterアプリケーションの構成

SOA Order Bookingアプリケーションをデータベースに接続するには、Oracle SOA Suite 11gドメインの一部としてインストールされ構成されているデフォルトのDbAdapterアプリケーションに変更を加える必要があります。

DbAdapterをSOA Order Bookingアプリケーション用に構成する方法は、次の項を参照してください。

A.4.2.1 DbAdapterアプリケーションの新規アウトバウンド接続プールの作成

次の手順を使用して、DbAdapterアプリケーションに新規アウトバウンド接続プールを作成します。

  1. DbAdapterアプリケーションのデプロイメント・プランを保存するためのディレクトリを作成します。

    例:

    MW_HOME/Oracle_SOA1/soa/DBPlan
    
  2. 「ドメイン構造」ツリーで「デプロイメント」をクリックします。

  3. DbAdapterアプリケーションをクリックします(チェック・ボックスではなく名前をクリックします)。

  4. 「構成」タブをクリックし、「アウトバウンド接続プール」タブをクリックします。

  5. 「新規」をクリックします。

  6. javax.resource.cci.ConnectionFactoryのラジオ・ボタンを選択し、「次へ」をクリックします。

  7. 「JNDI名」にeis/DB/soademoDSと入力します。

    このJNDI名は、データベース接続で入力する値と一致する必要があります。データベース接続は、この手順の後の方で、Oracle JDeveloperとともにアプリケーションをアップグレードする際に作成します。

  8. 「終了」をクリックします。

    このとき、デプロイメント・プランの場所を入力するように求められます。

  9. 先に作成したディレクトリへのパスをクリックし、デプロイメント・プラン名Plan.xmlを入力します。

  10. 正しいデプロイメント・プランが選択されていることを確認します。

  11. 「次へ」をクリックし、「終了」をクリックします。

A.4.2.2 DbAdapterアプリケーションの新規接続プールの構成

次の手順を使用して、データ・ソースを参照するように新規接続プールを構成します。

  1. 「構成」タブをクリックし、コネクション・ファクトリを展開して新規接続プールをクリックします(チェック・ボックスではなく名前をクリックします)。

  2. 「プロパティ」表で、「xADataSource」の右側のボックスを選択します。

    編集ボックスが表示されます。

  3. 前に作成したデータ・ソースの名前を入力します。

    jdbc/soademoDS
    
  4. [Enter]キーを押して値を適用し、「保存」をクリックします。

    フィールドに値を入力するには[Enter]キーを使用し、変更を保存するには「保存」をクリックする必要があります。

  5. 「デプロイメント」ページに戻り、左側のナビゲーション・バーで「デプロイメント」をクリックします。

  6. 「DbAdapter」の左側のチェック・ボックスを選択します。

  7. 「更新」をクリックします。

  8. 「このアプリケーションを再デプロイ」を選択し、デプロイメント・プランの場所を再確認して「終了」をクリックします。

  9. 変更を検証して、確実に正しい構成になるようにします。構成が正しくないと、後でデプロイメント・エラーが発生します。

    • 「DbAdapter」「構成」「アウトバウンド接続プール」ページに戻り、コネクション・ファクトリを展開して、接続プールが追加されたことを確認します。

    • 前に入力した「xADataSource」プロパティの値を確認します。

    • DbAdapterの「アウトバウンド接続プール」タブに戻り、eis/DB/soademoDS接続プールのコネクション・ファクトリのプロパティ値を確認します。

A.4.3 タスク3c: SOA Order Booking JMSリソースの作成

SOA Order Bookingサンプル・アプリケーションは、メッセージ・キューを使用して注文および調達の詳細を送信します。このため、アプリケーションを正常にデプロイできるようにするには、事前にJMSキューを構成しておく必要があります。

JMSの構成にはWLSTコマンドおよびスクリプトを使用できますが、次の手順では、JMSの構成にOracle WebLogic管理コンソールを使用する方法を示しています。

次の項では、SOA Order Bookingデモ・サンプル・アプリケーション向けにJMSを構成する方法について説明します。

A.4.3.1 SOA Order Bookingデモ用のJMSキューの作成

SOA Order Bookingデモに必要なJMS宛先を作成する手順は、次のとおりです。

  1. Oracle WebLogic管理コンソールで、「JMSモジュールのサマリー」ページに移動し、「SOAJMSModule」JMSモジュールをクリックします。

    このモジュールは、Oracle SOA Suite 11gをインストールおよび構成するときに作成および構成します。

  2. JMSモジュールの構成ページで、「新規」をクリックします。

  3. リソース・タイプのリストから「キュー」を選択します。

  4. 「JMS宛先のプロパティ」ページで、宛先キューの名前とJNDI位置を入力します。

    この手順では、次の値を入力します。

    名前: demoFulfillmentQueue

    JNDI名: jms/demoFulfillmentQueue

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

  6. 「サブデプロイメント」ドロップダウン・メニューから「SOASubDeployment」を選択します。

  7. 「SOAJMSServer」JMSサーバーを選択し、「終了」をクリックします。

A.4.3.2 SOA Order Bookingデモ用のJMSコネクション・ファクトリの作成

SOA Order Bookingデモ・サンプル・アプリケーションに必要なコネクション・ファクトリを作成する手順は、次のとおりです。

  1. Oracle WebLogic管理コンソールで、「JMSモジュールのサマリー」ページに移動し、「SOAJMSModule」JMSモジュールをクリックします。

  2. JMSモジュールの構成ページで、「新規」をクリックします。

  3. リソース・タイプのリストから「接続ファクトリ」を選択し、「次へ」をクリックします。

  4. 「接続ファクトリのプロパティ」ページで、JMSコネクション・ファクトリの名前とJNDI位置を入力します。

    次の値を使用します。

    名前: demoCF

    JNDI名: jms/demoCF

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

  6. 「終了」をクリックします。

    キューとコネクション・ファクトリが「リソースのサマリー」にリストされます。

A.4.3.3 JmsAdapterアプリケーション用のアウトバウンド接続プールの作成

次の手順を使用して、新規接続プールを作成します。接続プールがJmsAdapterアプリケーションに構成され、デプロイメント・プランが使用されます。

  1. JmsAdapterアプリケーションのデプロイメント・プランのディレクトリを作成します。

    例:

    MW_HOME/Oracle_SOA1/soa/JMSPlan
    
  2. Oracle WebLogic Server管理コンソールで、「デプロイメント」をクリックします。

  3. 「JmsAdapter」をクリックします(チェック・ボックスではなく名前をクリックします)。

  4. 「構成」タブをクリックし、「アウトバウンド接続プール」タブをクリックします。

  5. 「新規」をクリックします。

  6. oracle.tip.adapter.jms.IJmsConnectionFactoryファクトリを選択します。

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

  8. eis/demo/Queueと入力します。

  9. 「終了」をクリックします。

    このとき、デプロイメント・プランの場所を入力するように求められます。

  10. 前に作成したディレクトリへのパスをクリックし、計画名にPlan.xmlを入力します。

    画面下部にラジオ・ボタンで選択されたプラン・ファイルがある場合は、入力したプラン・ファイルが優先されます。

  11. 「次へ」をクリックし、「終了」をクリックします。

A.4.3.4 JmsAdapter接続プールの構成

次の手順を使用して、前項で作成した接続プールを構成します。

  1. Oracle WebLogic Server管理コンソールで、「デプロイメント」をクリックします。

  2. 「JmsAdapter」をクリックします(チェック・ボックスではなく名前をクリックします)。

  3. 「構成」タブをクリックし、「アウトバウンド接続プール」タブをクリックします。

  4. oracle.tip.adapter.jms.IJmsConnectionFactoryコネクション・ファクトリを展開します。

  5. eis/demo/Queueをクリックします。

  6. 「ConnectionFactoryLocation」プロパティの値をjms/demoCFに変更し、[Enter]キーを押します。

    フィールドに値を入力するには[Enter]キーを使用する必要があります。

  7. 「保存」をクリックします。

    値を保存するには、「保存」ボタンを使用する必要があります。

A.4.3.5 変更されたJmsAdapterアプリケーションの再デプロイ

次の手順を使用して、JmsAdapterを再デプロイします。

  1. Oracle WebLogic Server管理コンソールのナビゲーション・ツリーで、「デプロイメント」をクリックします。

  2. 「JmsAdapter」の左側のチェック・ボックスを選択します。

  3. 「デプロイメント」表の上部の「更新」をクリックします。

  4. 正しいデプロイメント・プランが選択されていることを確認します。

  5. 「このアプリケーションを再デプロイ」を選択し、デプロイメント・プランの場所を再確認して「終了」をクリックします。

A.5 タスク4: Oracle JDeveloper 11gのインストール

Oracle JDeveloper 11gは、Oracle Fusion Middlewareに付属しているCDのZIPファイルからインストールするか、またはOracle Technology Network (OTN)からOracle JDeveloper Studio Editionバージョン11.1.1.1.0.0のZIPファイルをダウンロードしてインストールできます。

http://www.oracle.com/technology/software/products/jdev/index.html

JDeveloperのインストール先は、Oracle Fusion Middleware 11gを稼働しているマシンでも、Oracle Fusion Middlewareを稼働しているマシンとは異なるマシンでもかまいません。

詳細は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。

A.6 タスク5: Oracle JDeveloperリリース11の接続の設定

Oracle JDeveloperリリース11 (11.1.1.0.0)で、データベースおよびOracle Application Serverへの接続を設定します。これらの接続を使用すると、SOADEMOスキーマのデータを表示し、アプリケーションをJDeveloperからOracle Fusion Middlewareにデプロイできます。

このタスクには、次のサブタスクが含まれます。

A.6.1 タスク5a: Oracle JDeveloper 11gの起動

WindowsでOracle JDeveloper Studioを起動するには、次のいずれかの方法を使用します。

  • 「スタート」メニューから、「すべてのプログラム」「Oracle Fusion Middleware 11.1.1.x.x」「Oracle JDeveloper Studio 11.1.1.x.x」の順に選択します。

  • Oracle JDeveloperは、コマンドラインで次のいずれかのコマンドを実行して起動することもできます。

    install_dir\jdeveloper\jdeveloper.exe
    install_dir\jdeveloper\jdev\bin\jdevw.exe
    install_dir\jdeveloper\jdev\bin\jdev.exe (to display a console window
                                              for internal diagnostic information)
    

UNIXシステムでOracle JDeveloperを起動するには、次のファイルを実行します。

 install_dir/jdeveloper/jdev/bin/jdev

A.6.2 タスク5b: 必要なOracle JDeveloper拡張機能があることの確認

Oracle SOA Suiteアプリケーションを11gにアップグレードするには、Oracle JDeveloper 11gに対応するOracle SOAコンポジット・エディタ拡張機能がインストールされている必要があります。

この拡張機能がインストールされていることを確認するには、Oracle JDeveloperの「ヘルプ」メニューから「バージョン情報」を選択し、「バージョン」タブをクリックします。コンポーネントのリストに「SOAコンポジット・エディタ」というエントリが表示されます。

「バージョン情報」ダイアログ・ボックスの「バージョン」タブにこのコンポーネントが表示されない場合は、「バージョン情報」ダイアログを閉じて、「ヘルプ」メニューから「更新の確認」を選択します。更新の確認ウィザードを使用して、最新バージョンの「SOAコンポジット・エディタ」拡張機能を検索し、インストールします。

A.6.3 タスク5c: SOADEMOスキーマへの接続の作成

JDeveloperで、SOADEMOスキーマへのデータベース接続を作成します。


注意:

このチュートリアルでは、データベース接続にSOADEMOという名前を付与します。別の名前を使用することもできますが、同じ命名規則を使用した方がデモの手順がわかりやすくなります。


  1. Oracle JDeveloperで、「表示」→データベース・ナビゲータを選択します。

  2. 「IDE接続」ノードを右クリックし、「接続の作成」を選択します。

  3. 表示されるダイアログ・ボックスで、次の値を入力します。

    • 接続名: 「SOADEMO」と入力します。

    • 接続タイプ: 「Oracle (JDBC)」を選択します。

    • ユーザー名: 「SOADEMO」と入力します。

    • パスワード: 「soademo」と入力します。

    • ロール: 空白のままにします。

    • パスワードの保存: このチェック・ボックスを選択します。

    • カスタムJDBC URLの入力: このチェック・ボックスの選択を解除します。

    • ドライバ: 「thin」を選択します。

    • ホスト名: SOADEMOスキーマをインストールしたデータベースが実行されているマシンの名前を入力します。

    • JDBCポート: データベースのポート番号を入力します。デフォルト値は1521です。

    • SID: データベースのシステム識別子を入力します。デフォルト値はORCLです。

    データベース接続値が不明な場合は、データベース管理者に確認してください。

  4. 「接続のテスト」をクリックします。

    テストが成功しない場合は、データベースが使用可能であること、および接続値が正しいことを確認してください。

  5. 「終了」をクリックします。接続ナビゲータの「データベース」ノードの下に、接続が表示されます。

  6. これで、Oracle JDeveloperからスキーマを調べることができます。「接続ナビゲータ」で、「データベース」→「SOADEMO」の順に展開します。「順序」および「表」ノードを開き、リストされる表が、10g リリース3 (10.1.3.1.0)のOracle SOAチュートリアルのSOADEMOスキーマの内容に関する項にリストされている表と一致していることを確認します。

    Oracle JDeveloperでのSOADEMOスキーマの表示
    図版db_connections.gifの説明

A.6.4 タスク5d: Oracle WebLogic Serverへの接続の作成

JDeveloperで、Oracle SOA Suite 11gをインストールおよび構成したOracle WebLogic Serverドメインへの接続を作成します。

  1. Oracle JDeveloperで、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択します。

  2. 「アプリケーション・サーバー」ノードの下にある「アプリケーション・サーバー」フォルダを右クリックし、「新規アプリケーション・サーバー」を選択します。

    as_connections.gifの説明が続きます
    図版as_connections.gifの説明

  3. アプリケーション・サーバー接続ウィザードの「ようこそ」ページで、「次へ」をクリックします。

  4. 次の値を入力します。

    • 接続名: SoademoApplicationServerと入力します。

    • 接続タイプ: 「WebLogic 10.3」を選択します。

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

  5. ステップ2の認証ページで、次の値を入力します。

    • ユーザー名: 「weblogic」と入力します。これは、Oracle WebLogic Serverのデフォルトの管理ユーザー名です。

    • パスワード: weblogicユーザーのパスワードを入力します。これは、Oracle SOA Suite 11gドメインを構成したときに設定したパスワードです。

  6. 「次へ」をクリックし、A.3項「タスク2: Oracle Fusion Middleware SOA Suiteのインストールとアップグレード」でインストールおよび構成したOracle WebLogic Serverドメインのホスト、ポートおよび名前を入力します。

  7. 「次へ」をクリックします。「接続のテスト」ページが表示されます。

  8. 「接続のテスト」をクリックします。

  9. 「終了」をクリックします。

    接続ナビゲータの「アプリケーション・サーバー」ノードの下に、接続が表示されます。

A.7 タスク6: SOA Order BookingアプリケーションをOracle JDeveloper 11gで開き、アプリケーション・プロジェクトを移行

次の項では、以前のバージョンのOracle JDeveloperで作成したアプリケーションを開き、移行ウィザードを使用してそのアプリケーションをOracle Fusion Middleware 11gにアップグレードする方法について説明します。


重要:

SOA Order Bookingアプリケーションおよびそのプロジェクトは、外部パートナに依存しています。SOA Order BookingアプリケーションをOracle Fusion Middleware 11gに移行する際は、これらのリモートWebサービスが稼働中でSOA Order Bookingアプリケーションから使用できる必要があります。

外部パートナのURIが使用できない場合、アプリケーションをOracle JDeveloper 11gで正常に開くことができません。詳細は、「タスク1: SOA Order Bookingと外部パートナが稼働していることの確認」を参照してください。


A.7.1 アプリケーションを開いて移行

アプリケーションをOracle JDeveloper 11gで開いて移行する手順は、次のとおりです。

  1. 10g リリース3 (10.1.3.4)のSOA Order Bookingデモ・アプリケーションのソース・ファイルがあるsoademoフォルダのバックアップ・コピーを作成します。

    soademoフォルダの内容はアップグレード時に変更されます。バックアップ・コピーを使用すると、必要な場合に元の10g リリース3 (10.1.3)バージョンのデモをリストアできます。

    この手順では、作業フォルダ(アップグレードするファイルがあるフォルダ)がSOADEMO_HOMEディレクトリとして記載されていることに注意してください。

  2. SOADEMO_HOMEディレクトリの内容を確認し、次のファイルがあれば削除します。

    SOADEMO_HOME/SOAOrderBooking/bpel/rules/com
    

    このbpel/rules/com/ディレクトリの下位にあるサブディレクトリも含まれます。

  3. 「ファイル」メニューから「開く」を選択し、Oracle JDeveloper 10g リリース3 (10.1.3.1.0)のsoademo.jwsファイルを選択します。

    移行ウィザードのステップ1の「ようこそ」ページが表示されます。

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

  4. ステップ2(図A-5)で「はい」を選択し、プロジェクト・ファイルをOracle JDeveloperリリース11 (11.1.1.0.0)に移行します。

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

    図A-5 Oracle JDeveloper 11gの移行ウィザードのステップ2

    図A-5の説明が続きます
    「図A-5 Oracle JDeveloper 11gの移行ウィザードのステップ2」の説明

  5. ステップ3で、「Webapp 2.5へ移行」チェック・ボックスの選択を解除します。


    注意:

    「Webapp 2.5へ移行」チェック・ボックスの選択を解除することは重要です。SOA Order Bookingデモ・アプリケーションでは、この手順の後半で手動でアップグレードするWebサービスを使用するためです。このWebサービスが移行ウィザードにより自動アップグレードされないように、必ず「Webapp 2.5へ移行」チェック・ボックスの選択を解除してください。


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

    図A-6 Oracle JDeveloperの移行ウィザードのWebApp 2.5オプションの選択の解除

    図A-6の説明が続きます
    「図A-6 Oracle JDeveloperの移行ウィザードのWebApp 2.5オプションの選択の解除」の説明

  6. ステップ4で、ページの各項目を確認し、デフォルトの選択を受け入れて「次へ」をクリックします。

  7. ステップ5で、選択した設定オプションを確認し、「終了」をクリックしてアプリケーションをOracle JDeveloperリリース11gにアップグレードします。

    移行の進行状況を示す「移行ステータス」ダイアログ・ボックスが表示されます。また、移行についての情報が、Oracle JDeveloperのメイン・ウィンドウのロギング・ペインに表示されます。

  8. 移行の完了後、「終了」をクリックします。

A.7.2 移行ログ・ファイルの表示

移行の後で、アプリケーション移行時に生成されたログ・ファイルを確認できます。ログ・ファイルには、プロジェクトが開かれてOracle JDeveloper 11gに移行された際にOracle JDeveloper 11gによって加えられた様々な変更が記録されています。

ログ・ファイルは次のディレクトリにあります。

JDEV_HOME\upgrade\logs\

各アプリケーションのログ・ファイルを識別するには、各ログ・ファイルの日付およびタイムスタンプを参照します。例:

SOAOrderBooking2009-04-29-12-46-35PM.log

また、Oracle JDeveloperのメイン・ウィンドウの「メッセージ」タブには、移行された各プロジェクトの個別のログ・ファイルへのリンクが表示されます。移行ログ・ファイルを表示する任意のリンクをクリックします。

A.8 タスク7: Oracle Fusion Middleware 11gでの各アプリケーション・プロジェクトのコンパイルとデプロイ

SOADEMOアプリケーションを開いてプロジェクトをOracle JDeveloper 11gに移行した後、各プロジェクトを1つずつ再コンパイルおよび再デプロイできます。

各プロジェクトの確認、コンパイルおよび再デプロイは、次の順序で行います。

A.8.1 CreditService、RapidServiceおよびCustomerServiceプロジェクトについて

SOA Order BookingアプリケーションのCreditService、RapidServiceおよびCustomerServiceプロジェクトは、このアプリケーションの他のプロジェクトから参照されるJava EE Webサービスです。

このため、この例のためにこれら3つのプロジェクトを11gにアップグレードする必要はありません。引き続き、これらのサービスのOracle Application Server 10gバージョン(現在10g環境で実行されているバージョン)を使用できます。

これら3つのWebサービス・プロジェクトをアップグレードする場合は、次の点に注意します。

  • Java EEアプリケーションとWebサービスの開発に関する知識と経験があれば、Webサービス・プロジェクトの変更手順は、この付録に書かれている内容で十分です。ただし、この手順は、Java EEプロジェクトのアップグレードに関するチュートリアルとしては説明されていません。

  • CustomerService Webサービス・プロジェクトをアップグレードする場合は、SOAOrderBookingの追加変更がいくつか必要となりますが、この変更の詳細はこの付録には説明されていません。

A.8.2 SelectManufacturer

SelectManufacturerプロジェクトは非同期のBPELプロセスです。つまり、このプロジェクトには、BPELプロセス・フローを開始する受信アクティビティと、フローの最後に結果(つまり、見積)と非同期にクライアントをコールバックする起動アクティビティが含まれています。

SelectManufacturerプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「SelectManufacturer.jprのメイク」を選択します。

    プロジェクトが正常にコンパイルされます。

  3. プロジェクトを再度右クリックし、「デプロイ」「SelectManufacturer」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.3 DHLShipment

DHLShipmentプロジェクトは、Oracle Application Server 10g リリース3 (10.1.3)のOracle Enterprise Service Bus (ESB)サービスとして作成されました。このプロジェクトをOracle JDeveloper 11gによって開いた後に変更する必要はありません。

DHLShipmentプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「DHLShipment.jprのメイク」を選択します。

  3. プロジェクトを再度右クリックし、「デプロイ」「DHLShipment」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.4 FulfillmentESB

FulfillmentESBプロジェクトは、10g リリース3 (10.1.3)のOracle Enterprise Service Bus (ESB)プロジェクトとして作成されました。

注文が承認されると、SOAOrderBookingプロジェクトはFulfillmentESBプロジェクトを起動して注文の出荷方法を決定します。

注文はファイル・アダプタを介してUSPSに送信されます。注文情報はファイルに書き込まれます。Fedexの場合は、注文がデータベース・アダプタを介して送信されます。注文情報はデータベースに書き込まれます。FulfillmentESBプロジェクトは注文をJMSキューにも送信します。

このプロジェクトをコンパイルおよび再デプロイする前に、Oracle JDeveloper 11gで次の小さないくつかの変更を行う必要があります。

A.8.4.1 Oracle JDeveloper 11gでのFulfillmentESBプロジェクトの変更

FulfillmentESBプロジェクトを次のように変更します。

  1. FullfillmentESBプロジェクトを展開し、composite.xmlをダブルクリックします。

  2. FulfillmentESBコンポジットが「SOAコンポジット・エディタ」に表示されます(図A-4)。

    詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のSOAアプリケーションおよびプロジェクト作成時の処理内容に関する項を参照してください。

  3. 右側のスイムレーンでFulfillment.FulfillmentBatchへの参照を表すアイコンをダブルクリックします。

    この外部参照はFulfillment.FulfillmentBatch JMSアダプタを表します。

    この参照をダブルクリックすると、アダプタ構成ウィザードが表示されます。

  4. アダプタ構成ウィザードの指示に従って、JMSアダプタをOracle Fusion Middleware 11g環境向けに再構成します。

    ウィザードのデフォルト設定は、次を除いてすべて受け入れることができます。

    • Oracle Enterprise Messaging Serviceとして「Oracle Weblogic JMS」を選択します。

    • 「タスク5d: Oracle WebLogic Serverへの接続の作成」で作成したアプリケーション・サーバー接続を選択します。

    • キュー名の横にある「参照」ボタンをクリックし、「demoFulfillmentQueue」を選択します。

      「キュー名」フィールドに「jms/demoFullfillmentQueue」が入力されます。

    • 「JNDI名」をeis/demo/Queueに設定します。

  5. コンポジット・エディタに戻ったら、右側のスイムレーンでFulfillment.FedexShipmentへの参照を表すアイコンをダブルクリックします。

    この外部参照はデータベース・アダプタを表します。

    この参照をダブルクリックすると、アダプタ構成ウィザードが表示されます。

  6. アダプタ構成ウィザードの指示に従って、データベース・アダプタをOracle Fusion Middleware 11g環境向けに再構成します。

    ウィザードのデフォルトは、次を除いてすべて受け入れることができます。

    • データベース接続としてsoademoを選択します。

    • 「JNDI名」をeis/DB/soademoDSに設定します。

  7. Fulfillment.USPSShipmentへの外部参照(ファイル・アダプタを表す)を次のように更新します。

    1. ディスク上にファイル・アダプタのディレクトリを作成します。例:

      MW_HOME/Oracle_SOA1/soa/USPSShipment
      
    2. FulfillmentESBプロジェクトのためにコンポジット・エディタに戻り、FulfillmentUSPSShipmentへの外部参照をダブルクリックします。

      アダプタ構成ウィザードが表示されます。

    3. 「ファイル構成」画面が表示されるまで、画面の指示に従います。

    4. 「発信ファイルのディレクトリ(物理パス)」フィールドで、ステップ7aで作成したディレクトリへのパスを入力します。

    5. 「次へ」をクリックし、アダプタ構成手順の残りを実行します。

図A-7 SOA Order BookingアプリケーションのFulfillmentESBプロジェクトのコンポジット・エディタ

図A-7の説明が続きます
「図A-7 SOA Order BookingアプリケーションのFulfillmentESBプロジェクトのコンポジット・エディタ」の説明

A.8.4.2 FulfillmentESBプロジェクトのコンパイルおよびデプロイ

Fulfillmentプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「FulfillmentESB.jprのメイク」を選択します。

  3. プロジェクトを再度右クリックし、「デプロイ」「FulFillmentESB」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.5 CreditService

CreditServiceプロジェクトは、顧客のクレジット・カードが有効かどうかをチェックします。このSOA Order Bookingアプリケーションで、コードは、クレジット・カード番号の値のみをチェックします。クレジット・カード番号が12345678未満の場合、カードは無効です。それ以外の場合は、有効です。

このプロジェクトはJava EE Webサービスのプロジェクトです。続行する前に、A.8.1項「CreditService、RapidServiceおよびCustomerServiceプロジェクトについて」を参照してください。

このプロジェクトをコンパイルおよび再デプロイする前に、WebサービスをOC4J JAX-RPCからOracle WebLogic Server JAX-RPCにアップグレードしておく必要があります。

A.8.5.1 CreditService Webサービスのアップグレード

OC4J JAX-RPC WebサービスをOracle WebLogic Server JAX-RPCにアップグレードする手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、CreditServiceプロジェクトを展開し、次の項目を選択します。

    「アプリケーション・ソース」→「org.soademo.creditservice」→「CreditService」

  2. Credit Service Webサービスを右クリックし、コンテキスト・メニューから「WebサービスをWLS JAX-RPC構成にアップグレード」を選択します。

    「アップグレードの確認」ダイアログ・ボックスが表示されます。

  3. 「はい」をクリックして、CreditService WebサービスをOracle WebLogic Server JAX-RPCにアップグレードします。

  4. アップグレードが完了したら、プロジェクトを保存します。

図A-8 CreditService Webサービスをアップグレードする際の確認ダイアログ・ボックス

図A-8の説明が続きます
「図A-8 CreditService Webサービスをアップグレードする際の確認ダイアログ・ボックス」の説明

A.8.5.2 CreditServiceプロジェクトのコンパイルおよびデプロイ

CreditServiceプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「CreditService.jprのメイク」を選択します。

  3. プロジェクトを再度右クリックし、「デプロイ」「CreditService」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.6 RapidService

RapidServiceプロジェクトは、顧客注文の見積価格を提示するサプライヤを表します。このサプライヤと競合する他のサプライヤが、SelectManufacturerです。顧客注文に対して低い見積を提示するサプライヤが、注文に対する供給を行うことができます。

このプロジェクトはJava EE Webサービスのプロジェクトです。続行する前に、A.8.1項「CreditService、RapidServiceおよびCustomerServiceプロジェクトについて」を参照してください。

このプロジェクトをコンパイルおよび再デプロイするには、Oracle JDeveloper 11gを使用して変更しておく必要があります。

A.8.6.1 RapidService WebサービスのOC4J JAX-RPCからOracle WebLogic Server JAX-WSへのアップグレード

このプロジェクトをコンパイルおよびデプロイする前に、OC4J JAX-RPC WebサービスをOracle WebLogic Server JAX-WSにアップグレードしておく必要があります。

次の手順では、トップダウン手法を使用し、既存のWSDLを使用してWebサービスを再生成します。

  1. RapidServiceプロジェクトから既存のJAX-RPC Webサービス・ファイルを削除します。

    1. Oracle JDeveloper 11gアプリケーション・ナビゲータ・ペインで、RapidServiceプロジェクトを開いて、次のノードを開きます。

      「アプリケーション・ソース」→「org.soademo.rapidservice」

    2. 「RapidService」ノードを右クリックし、コンテキスト・メニューから「削除」を選択します。

    3. 「Webサービスを削除しますか。」ダイアログ・ボックスで、「すべて選択」をクリックして、ダイアログ・ボックスに表示されたファイルをすべて選択します。

    4. 図A-9に示すように、RapidService.wsdlファイルのチェック・ボックスの選択を解除します。

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

      図A-9 RapidService Webサービスの削除

      図A-9の説明が続きます
      「図A-9 RapidService Webサービスの削除」の説明

    6. 「タイプ」ノードの内容を開き、Item.javaQuote.javaを削除します。

    7. 「Webコンテンツ」「WEB-INF」ノードの内容を開き、oracle-webservices.xmlweb.xmlおよびwebservices.xmlを削除します。

      図A-10はRapidServiceの下のファイルを示しています。これらのファイルを選択して削除します。

      図A-10 RapidService Webサービス・ファイルおよび関連ファイルの削除

      図A-10の説明が続きます
      「図A-10 RapidService Webサービス・ファイルおよび関連ファイルの削除」の説明

  2. クラスパスからJAX-RPC Webサービスを削除します。

    1. 「RapidService」プロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

      「プロジェクト・プロパティ」ウィンドウが表示されます。

    2. 「ライブラリとクラスパス」JAX-RPC 10.1.3 Webサービスの順に選択し、「削除」「OK」の順にクリックします。

  3. 新しいJAX-WS Webサービスを生成します。

    1. RapidServiceプロジェクト内の次の場所の下にあるRapidService.wsdlファイルを右クリックします。

      「アプリケーション・ソース」→「org.soademo.rapidservice」→「RapidService」

    2. コンテキスト・メニューから「Webサービスの作成」を選択します。

      「WSDLからJava Webサービスを作成」ウィザードが表示されます。

    3. 画面の指示に従い、新しいJAX-WS Webサービスを作成します。

      「デプロイメント・プラットフォームの選択」画面で、必ず「Java EE 1.5 (JAX-WS注釈のサポート付き)」を選択します。

  4. RequestQuoteImpl.javaファイルのpoItemsQuoteメソッドを次のように変更します。

    public Quote poItemsQuote(@WebParam(name = "param0", targetNamespace = "http://rapidservice.soademo.org/types/")
            List<Item> param0) {
            Long totalPrice = new Long(0);
            for (int i = 0; i < param0.size(); i++) {
                Item localItem = param0.get(i);
                totalPrice += localItem.getQuantity() * 110;
            }
            Quote priceQuote = new Quote();
            priceQuote.setSupplierName("RapidDistributors");
            priceQuote.setSupplierPrice(totalPrice.toString());
            return priceQuote;
    }
    
  5. RequestQuoteImpl.javaファイルのorderQuoteメソッドを次のように変更します。

    public Quote orderQuote(@WebParam(name = "param0", targetNamespace =
                "http://rapidservice.soademo.org/types/")
         String param0, @WebParam(name = "param1", targetNamespace =
                "http://rapidservice.soademo.org/types/")
         String param1, @WebParam(name = "param2", targetNamespace =
                "http://rapidservice.soademo.org/types/")
         String param2, @WebParam(name = "param3", targetNamespace =
                "http://rapidservice.soademo.org/types/")
         String param3, @WebParam(name = "param4", targetNamespace =
                "http://rapidservice.soademo.org/types/")
         String param4) {
            Quote priceQuote = new Quote();
            priceQuote.setSupplierName("RapidDistributors");
            priceQuote.setSupplierPrice("5000");
         return priceQuote;
    }
    
  6. RapidServiceプロジェクトの変更を保存します。

A.8.6.2 RapidServiceプロジェクトのコンパイルおよびデプロイ

Fulfillmentプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「RapidService.jprのメイク」を選択します。

  3. プロジェクトを再度右クリックし、「デプロイ」「RapidService」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.7 CustomerService

CustomerServiceプロジェクトは、SOAデモ・クライアント・アプリケーションなどのクライアント・アプリケーションがデータベースから顧客情報を取り出したり顧客をデータベースに追加するためのメソッドを提供するEJB実装です。

このプロジェクトはJava EE Webサービスのプロジェクトです。続行する前に、A.8.1項「CreditService、RapidServiceおよびCustomerServiceプロジェクトについて」を参照してください。

このプロジェクトをコンパイルおよびデプロイする前に、Oracle JDeveloper 11gでプロジェクトに対していくつかの変更を行っておく必要があります。

A.8.7.1 特定のCustomerServiceプロジェクト・クラス・ファイルの変更

Oracle JDeveloper 11gでCustomerServiceオブジェクトを変更するには、プロジェクトの/src/org/soademo/customerservice/ディレクトリにある次のファイルを変更する必要があります。

  • business/Customerservice.java:

    finsCustomerById()メソッドから"throws RemoteException"を削除します。

  • client/CustomerServiceClient.javabusiness/CustomerServiceClient.java

    1. 例A-1に示すクラス・ファイルのセクションを検索し、例A-2に示された変更を反映するように変更します。

    2. ルックアップを次のように変更します。

       CustomerService customerService =
            (CustomerService)context.lookup(
             "CustomerService#org.soademo.customerservice.business.CustomerService");
      
  • business/CustomerserviceBean.java:

    例A-3に示す変更を反映した内容になるようにこのファイルを変更します。

例A-1 オリジナルのCustomerService.javaファイル

private static Context getInitialContext() throws NamingException {
    Hashtable en = new Hashtable();
    //  Standalone OC4J connection details
    env.put( Context.INITIAL_CONTEXT_FACTORY,
                      "oracle.j2ee.rmi.RMIInitialContextFactory" );
    env.put( Context.SECURITY_PRINCIPAL, "oc4jadmin" );
    env.put( Context.SECURITY_CREDENTIALS, "welcome1" );
    env.put(Context.PROVIDER_URL, "ormi://localhost:23791/CustomerService");
    return new InitialContext( env );

例A-2 変更されたCustomerService.javaファイル

private static Context getInitialContext() throws NamingException {
        Hashtable env = new Hashtable();
        env.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
        env.put( Context.SECURITY_PRINCIPAL, "weblogic" );
        env.put( Context.SECURITY_CREDENTIALS, "weblogic" );
        env.put(Context.PROVIDER_URL, "t3://edith:7101");
        return new InitialContext( env );
    }

例A-3 更新されたCustomerServiceBean.javaクラス・ファイル

package org.soademo.customerservice.business;
import javax.ejb.Remote;
import javax.ejb.RemoteHome;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.soademo.customerservice.persistence.Customer;
@Remote
@WebService(serviceName = "CustomerSvc", 
            targetNamespace = "http://www.globalcompany.com/ns/customer")
@Stateless(name="CustomerService", mappedName = "CustomerService")
public class CustomerServiceBean implements CustomerServiceLocal, 
         CustomerService {
    @PersistenceContext(unitName = "customerServiceUnit" )
    private EntityManager em;
    public CustomerServiceBean() {
    }
    /**
     * @param entity
     * @return
     */
    public Object mergeEntity(Object entity) {
        return em.merge(entity);
    }
    public Object persistEntity(Object entity) {
        em.persist(entity);
        return entity;
    }
    public Object refreshEntity(Object entity) {
        em.refresh(entity);
        return entity;
    }
    public void removeEntity(Object entity) {
        em.remove(em.merge(entity));
    }
    /** <code>select object(cust) from Customer cust 
                          where cust.custid = :custid</code> */
    @WebMethod
    public Customer findCustomerById(@WebParam(name = "custid", 
           targetNamespace = "http://www.globalcompany.com/ns/customer")
                          String custid){ 
//    public Customer findCustomerById(String custid) {
        return (Customer)em.createNamedQuery("Customer.findCustomerById").setParameter("custid", 
                          custid).getSingleResult();
    }
//    public String getCustomerStatus(String CustomerID) {
      @WebMethod
      public String getCustomerStatus(@WebParam(name = "CustomerID", 
                  targetNamespace = "http://www.globalcompany.com/ns/customer")
                  String CustomerID){return
                         findCustomerById(CustomerID).getStatus();
    }
 //   public String addNewCustomer(Customer customer) {
 @WebMethod
 public String addNewCustomer(@WebParam(name = "customer", 
                  targetNamespace ="http://www.globalcompany.com/ns/customer")
                  Customer customer){
        em.persist(customer);
        //making the change to return the customer id 
        // that client application can use to query orders 
        return customer.getCustid();
        //return "New customer added sucessfully to customer database";
    }
 //   public Customer findCustomerByEmail(String email, String password) {
 @WebMethod
 public Customer findCustomerByEmail(@WebParam(name = "email",
                 targetNamespace = "http://www.globalcompany.com/ns/customer")
                 String email, @WebParam(name = "password", 
              targetNamespace = "http://www.globalcompany.com/ns/customer")
                         String password){
                            return(Customer)em.createNamedQuery(
                             "Customer.findCustomerByEmail").setParameter("email",
                         email).setParameter("password",
                            password).getSingleResult();
    }
}

A.8.7.2 CustomerServiceプロジェクトのpersistence.xmlファイルの変更

Oracle Weblogic Serverで明示的にKodoを使用するようにsrc/META-INF/persistence.xmlを変更します。

Kodoは、透過なデータ・オブジェクトの規格であるSun Microsystem社のJava Persistence API (JPA)およびJava Data Objects (JDO)を実装したものです。Kodoは、スタンドアロン製品として使用可能で、WebLogic Serverに統合されます。

次のエントリをpersistence.xmlファイルの<persistence-unit>要素に追加します。

<provider>kodo.persistence.PersistenceProviderImpl</provider>

A.8.7.3 CustomerServiceプロジェクトのコンパイルおよびデプロイ

Fulfillmentプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「CustomerService.jprのメイク」を選択します。

  3. プロジェクトを再度右クリックし、「デプロイ」「CustomerService」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.8 SOAOrderBooking

SOAOrderBookingプロジェクトはBPELプロジェクトで、SOA Order Bookingアプリケーションのメイン・フローを表します。これにより、注文情報が適切なタイミングで適切なサービスに送信されます。たとえば、CreditServiceに接続して顧客のクレジット・カードをチェックし、クレジット・カードがチェックに合格したら、サプライヤに接続(「Select Manufacturer」および「Rapid Distributors」)して注文の見積価格を入手します。

Oracle JDeveloper 11gでこのプロジェクトをコンパイルおよびデプロイするには、次のいくつかの変更を行う必要があります。

A.8.8.1 SOAOrderBookingプロジェクトの変更

Oracle JDeveloper 11gで、SOAOrderBookingプロジェクトを次のように変更します。

  1. SOAOrderBookingプロジェクトを展開し、「SOAコンテンツ」→「ApproveOrder」フォルダを開きます。

  2. ApproveOrder.taskファイルをダブルクリックします。このファイルで、手動による承認タスクを定義します。

  3. 割当ておよびルーティングのセクションの「マネージャ」アイコンをダブルクリックし、「識別タイプ」ドロップダウン・メニューから「ユーザー」を選択して、該当フィールドにweblogicを入力します。

  4. 「SOAコンテンツ」フォルダを開き、「composite.xml」をダブルクリックします。

    「SOAコンポジット・エディタ」にSOAOrderBookingコンポジットが表示されます。

  5. Orderへの参照を表すアイコンをダブルクリックします。

    この外部参照はOrderデータベース・アダプタを表します。

    この参照をダブルクリックすると、アダプタ構成ウィザードが表示されます。

  6. ウィザードの指示を実行します。デフォルト設定は、次の変更を除いて受け入れます。

    • データベース接続としてsoademoを選択します。

    • 「JNDI名」をeis/DB/soademoDSに設定します。

  7. OrderSequenceへの参照とOrderStatusへの外部参照に対してステップ5と6を実行します。これらの参照はともに、soademoデータベースおよびスキーマに接続するデータベース・アダプタを表しています。

  8. SelectServiceへの参照をダブルクリックします。

    「参照の更新」ダイアログ・ボックスが表示されます。

    「WSDL URL」フィールドの横の「WSDL」アイコンをクリックすると、「SOAリソース・ブラウザ」が表示されます。

    ドロップダウン・メニューから「リソース・パレット」を選択し、次に「リソース・パレット」から「SelectManufacturer」を選択します。

  9. OrderFulfillmentへの参照に対してステップ8を繰り返します。ただし、今回は「リソース・パレット」のFulfillmentESBでFulfillment.OrderFulfillment_epエントリ・ポイントを選択します。

  10. プロジェクトの変更を保存します。

A.8.8.2 (オプション)アップグレードされたWebサービスを使用するためのSOAOrderBookingの変更

この手順の前の方でRapidService、CreditServiceおよびCustomerServiceプロジェクトをアップグレードして再デプロイした場合、Oracle Application Server 10g環境にデプロイされ稼働しているWebサービスではなく、新しい11g Webサービスを使用するように、SOAOrderBookingプロジェクトを変更できます。

または、引き続き、既存の10g Webサービスを参照することもできます。詳細は、A.8.1項「CreditService、RapidServiceおよびCustomerServiceプロジェクトについて」を参照してください。

新しくアップグレードされたRapidService、CreditServiceおよびCustomerService Webサービスを使用するようSOAOrderBookingプロジェクトを変更する手順は、次のとおりです。

  1. アップグレードされたWebサービス・プロジェクトの新しいWSDL URLを検索します。

    1. Webブラウザを開き、Fusion Middleware Controlにログインします。

      For example: host24.mycompany.com:7001/em
      

      詳細は、『Oracle Fusion Middleware管理者ガイド』のOracle Enterprise Manager Fusion Middleware Controlの使用に関するスタート・ガイドの項を参照してください。

    2. ターゲット・ナビゲーション・ペインで、「アプリケーション・デプロイメント」フォルダを開きます。

    3. デプロイ済アプリケーションのリストで、「SOADEMO-RAPIDSERVICE-RapidService-WS」アプリケーションをクリックします。

      選択したアプリケーション用の「アプリケーション・デプロイメント」ページが表示されます。

    4. このページの「エントリ・ポイント」セクションにある「Webサービス」表で、「SOADEMO-RAPIDSERVICE-RapidService-WS」に対して「テスト」アイコンをクリックします。

    5. 「Webサービスのテスト」ページから、WebサービスのWSDL URLをメモします。

    6. CreditServiceおよびCustomerServiceアプリケーションに対してステップcからeまでを繰り返します。

  2. 新しいWSDL URLを使用してSOAOrderBookingコンポジットを変更します。

    1. SOAOrderBookingプロジェクトを展開し、composite.xmlをダブルクリックします。

    2. 「SOAコンポジット・エディタ」にSOAOrderBookingコンポジットが表示されます。

    3. 右側のスイムレーンでRapidServiceへの外部参照を表すアイコンをダブルクリックします。

      この外部参照はRapidService Webサービスを表します。

      この参照をダブルクリックすると、「参照の更新」ダイアログ・ボックスが表示されます。

    4. 「WSDL URL」フィールドに新しい11gのWSDL URLを入力し、「OK」をクリックします。

    5. CreditValidationServiceおよびCustomerServiceへの外部参照に対してステップcとdを繰り返します。

    6. プロジェクトの変更を保存します。

  3. CustomerServiceプロジェクトを11gにアップグレードした場合は、11gへのアップグレード時に加えた変更を反映するよう、SOAOrderBooking.bpelファイルも変更する必要があります。

    それには、Webサービス・バインディングを再接続し、customerServiceRequestcustomerServiceResponseおよび後続の可変問合せを更新する必要があります。

A.8.8.3 SOAOrderBookingプロジェクトのコンパイルおよびデプロイ

SOAOrderBookingプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「メイク」を選択します。

    プロジェクトが正常にコンパイルされます。

  3. プロジェクトを再度右クリックし、「デプロイ」「SOAOrderBooking」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.9 OrderBookingESB

OrderBookingESBプロジェクトはSOA Order Bookingアプリケーションへのエントリ・ポイントです。

OrderBookingESBプロジェクトによりSOAOrderBookingプロジェクトが起動されます。SOAOrderBookingプロジェクトは、SOA Order Bookingアプリケーションの主要なフローを定義するBPELプロジェクトです。

これは、10g リリース3 (10.1.3)のOracle Enterprise Service Bus (ESB)プロジェクトとして作成されました。

Oracle JDeveloper 11gでこのプロジェクトをコンパイルおよびデプロイするには、次のいくつかの変更を行う必要があります。

A.8.9.1 OrderBookingESBプロジェクトの変更

Oracle JDeveloper 11gでOrderBookingESBプロジェクトを変更する手順は、次のとおりです。

  1. OrderBookingESBプロジェクトを展開し、composite.xmlをダブルクリックします。

  2. OrderBookingESBコンポジットが「SOAコンポジット・エディタ」に表示されます(図A-4)。

  3. 右側のスイムレーンでOrderBookingへの外部参照を表すアイコンをダブルクリックします。

    この外部参照はOrderBooking Webサービスを表します。

    この参照をダブルクリックすると、「参照の更新」ダイアログ・ボックスが表示されます。

  4. 「WSDL URL」フィールドの横の「WSDL」アイコンをクリックすると、「SOAリソース・ブラウザ」が表示されます。

    ドロップダウン・メニューから「リソース・パレット」を選択してアプリケーション・サーバー接続を開き、「リソース・パレット」から「SOAOrderBooking」「クライアント」リソースを選択します。

  5. プロジェクトの変更を保存します。

A.8.9.2 OrderBookingESBプロジェクトのコンパイルおよびデプロイ

OrderBookingESBプロジェクトをコンパイルおよび再デプロイする手順は、次のとおりです。

  1. アプリケーション・ナビゲータでプロジェクトを右クリックします。

  2. コンテキスト・メニューから「メイク」を選択します。

    プロジェクトが正常にコンパイルされます。

  3. プロジェクトを再度右クリックし、「デプロイ」「SOAOrderBookingESB」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  4. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.8.10 ApproveOrderTaskForm

Oracle JDeveloper 11gでSOA Order Bookingアプリケーションを開いてアップグレードすると、ApproveOrderTaskFormプロジェクトが自動的に作成されます。

このプロジェクトは変更する必要はありません。ただし、このプロジェクトをデプロイするには、プロジェクトとしてではなくアプリケーションとしてデプロイする必要があります。

  1. ApproveOrderTaskFormプロジェクトを選択します。

  2. 「アプリケーション」メニューから、「デプロイ」「ApproveOrderTaskForm」を選択します。

    デプロイメント・ウィザードの最初のページが表示されます。

  3. ウィザード・ページの指示に従い、プロジェクトをSoademoApplicationServerにデプロイします。

A.9 タスク8: Fusion Middleware ControlでのSOA Order Bookingアプリケーションのテスト

Oracle Enterprise Manager Fusion Middleware Controlでは、Webベースの管理コンソールが用意されており、Oracle SOA Suiteコンポジット・アプリケーションの管理に使用できます。

Fusion Middleware ControlでSOA Order Bookingアプリケーションをテストする手順は、次のとおりです。

  1. SOA Order Bookingアプリケーション・プロジェクトをデプロイしたOracle WebLogic ServerドメインのFusion Middleware Controlにログインします。

    Fusion Middleware ControlのURLは通常次のようになります。

    http://hostname:7001/em
    

    詳細は、『Oracle Fusion Middleware管理者ガイド』のOracle Enterprise Manager Fusion Middleware Controlの使用に関するスタート・ガイドの項を参照してください。

  2. ターゲット・ナビゲーション・ペインで、「SOA」フォルダ→「soa-infra (soa_server1)」ノードの順に開き、ドメインにデプロイされたSOAコンポジット・アプリケーションを表示します。

  3. 「OrderBookingESB」コンポジット・アプリケーションをクリックします。

    OrderBookingESBコンポジット・アプリケーション・ホームページの「ダッシュボード」タブが表示されます。このタブを使用することで、デプロイされたSOAコンポジット・アプリケーションを管理および監視できます。

  4. ページの上部にあるボタン・バーの「テスト」をクリックします。

    「Webサービスのテスト」ページに、「WSDLの位置」、「操作リスト」および2つのタブ「リクエスト」と「レスポンス」が表示されます。

  5. このページで「引数を入力」セクションまで下にスクロールします。

    ページのこのセクションで、コンポジット・アプリケーションをテストするための入力データを入力できます。SOA Order BookingアプリケーションのZIPファイルには、SOA Order Bookingアプリケーションのテストに使用するサンプル・データの入った、2つのテキスト・ファイルが含まれています。

  6. SOADEMO_HOMEのルート・ディレクトリで、次の入力サンプル・テスト・ファイルを特定します。

    sampleInput2.txt
    
  7. sampleInput2.txtを開き、ファイルのコンテンツをすべて選択およびコピーします。

  8. 「Webサービスのテスト」ページの「引数を入力」セクションのドロップダウン・メニューから、「XML表示」を選択します。

  9. ページの「引数を入力」セクションの「リクエスト」タブに表示されたXMLコンテンツを選択して削除します。

    図A-11は、「引数を入力」セクションで選択されたXMLコンテンツを示しています。

  10. sampleinput2.txtファイルのコンテンツをテキスト・フィールドに貼り付け、ページの下部で「Webサービスのテスト」をクリックします。

    数秒後、Webサービスが正常に起動されたことを示すメッセージが表示されます。サービスが取得した戻り値も表示されます。

  11. 「メッセージ・フロー・トレースの起動」リンクをクリックして、コンポジットのフローならびにサービス、コンポーネントおよび参照の各ステータスを確認します。

    「フローのトレース」ページ(図A-12)にプロセス・フローの各ステップが表示されます。このビューを使用することで、アプリケーションがその中の各コンポーネントおよびタスクを進行する過程を監視できます。

    また、コンポーネントをクリックすることで、コンポーネントの「インスタンスの詳細」にドリルダウンできます。

  12. 追加のテストとして、この同じ手順を実行するために、sampleinput2.txtと同じディレクトリに入っているsampleinput1.txtを使用でき、$1000を超える注文を発行します。

    sampleinput1.txtの場合、次のURLにログインして注文を承認するまで、ワークフローが停止し、続行されません。

    http://domain:port/integration/worklistapp
    

図A-11 「SOAコンポジット - Webサービスのテスト」ページの「引数を入力」セクションにおけるXMLコンテンツの選択

図A-11の説明が続きます
「図A-11 「SOAコンポジット - Webサービスのテスト」ページの「引数を入力」セクションにおけるXMLコンテンツの選択」の説明

図A-12 Fusion Middleware ControlでのSOA Order Bookingアプリケーションのフロー・トレース

図A-12の説明が続きます
「図A-12 Fusion Middleware ControlでのSOA Order Bookingアプリケーションのフロー・トレース」の説明