4.6. SOAP、CORBA バインディング の利用

4.6.1. 概要

SAAJクライアントからサーバアプリケーションを呼び出します。
サーバアプリケーションからの応答をSAAJクライアントに返却します。


図4.6.1-1



  1. SOAP BCがSAAJクライアントからSOAPMessageを取得します。
  2. SOAP BCはをRMI BCにメッセージ転送します。
  3. CORBA BCはサーバアプリケーションを呼び出します。
  4. サーバアプリケーションはCORBA BCに返信します。
  5. CORBA BCはメッセージをSOAP BCに転送します。
  6. SOAP BCはメッセージをSAAJクライアントに転送します。

4.6.2. 構成

ファイル名 説明
06_CORBA_SA.zip クライアントからファイルを受け取り処理するサービスアセンブリです。
06_ConvertTest.cpk ESBからデータを受け取るサーバアプリケーションです。
06_CORBA_AP.jar SOAPMessageを送信し、応答を待つクライアントアプリケーションです。
06_header_sample.xml クライアントが送信するSOAPMessageのヘッダのテストデータです。
06_test_sample.xml クライアントが送信するSOAPMessageのテストデータです。
run.bat クライアントアプリケーションを実行するバッチファイルです。(Windows用)
run.sh クライアントアプリケーションを実行するシェルスクリプトです。(Unix用)
proj_06_CORBA_SA.zip サービスアセンブリのプロジェクトファイルです。
proj_06_CORBA_AP.zip クライアントアプリケーションのプロジェクトファイルです。

4.6.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。 作業を行う前に、注意事項1を参照してください。
環境構築
実行環境の構築を行います。
バッチファイル・シェルスクリプトの実行には、環境変数にJavaのパス([Javaのインストールディレクトリ]/bin)を設定する必要があります。
JDK1.7.0のパスを設定する例: 設定するパスは環境によって異なりますのでご注意ください。

起動状況確認
otxadminでドメインとコンポーネントの起動状況を確認します。
  1. コマンドプロンプトからotxadminを起動します。
    C:\>otxadmin
  2. list-domainsコマンドを実行しドメインの起動状況を確認します。
    otxadmin> list-domains
    domain1 running
    WebOTXAdmin running
    
    domain1がrunningとなっていればドメインは起動しています。
    もしdomain1がnot runningの場合は、start-domainコマンドでdomain1を起動します。
    otxadmin> start-domain domain1
  3. ドメインの起動を確認できたら、loginコマンドでログインを行います。
    otxadmin> login --user <ユーザ名> --password <パスワード>
    domain1を6212ポート以外で運用している場合は、portオプションでポート番号を指定してください。
  4. ログイン後、list-jbi-binding-componentsコマンドで各コンポーネントの起動状況を確認します。
    otxadmin> list-jbi-binding-components
    
     ================================
     List of Binding Components
     ================================
     Name : CORBABinding
     State: Started
     --------------------------------
     Name : FTPBinding
     State: Started
     --------------------------------
     Name : FileBinding
     State: Started
     --------------------------------
     (中略)
     --------------------------------
     Name : SOAPBinding
     State: Started
     --------------------------------
    
    CORBABindingとSOAPBindingがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin > start-jbi-component CORBABinding

アプリケーショングループとプロセスグループの作成・起動
  1. アプリケーショングループを作成します。
    otxadmin > create-apg apg1
  2. サーバアプリケーション用のプロセスグループを作成します。
    otxadmin > create-pg --version 9 --kind corbajava --apgroup apg1 pg1
  3. ESB用のプロセスグループを作成します。
    otxadmin > create-pg --version 9 --kind javaee --apgroup apg1 pg2
  4. ESB用のプロセスグループにJBIコンテナ起動を行うよう設定します。
    otxadmin > set tpsystem.applicationGroups.apg1.processGroups.pg2.enabledJBIContainer=true
  5. アプリケーショングループを起動します。このコマンドを実行することで、プロセスグループも起動します。
    otxadmin > start-apg apg1
配備
サービスアセンブリとサーバアプリケーションの配備を行います。配備には環境に応じて以下の3種類の方法があります。
  1. WebOTX Developer's Studioが利用できる場合
  2. WebOTX Developer's Studioがなく、統合運用管理ツールが利用できる場合
  3. WebOTX Developer's Studio、統合運用管理ツールいずれも利用できない場合
(1)Developer's Studioによる配備
サーバアプリケーションは、統合運用管理ツールあるいはコマンドにより配備してください。
  1. Developer's Studioを起動します。
  2. ヘルプメニューからヘルプ目次をクリックします。
  3. 目次から、WebOTX Help > アプリケーション開発ガイド > サービスインテグレーション > ESBによるサービス統合 > サンプル集を開きます。
    表からproj_06_CORBA_SAをクリックすることで、プロジェクトをインポートします。
  4. パッケージエクスプローラからプロジェクトを右クリックし、実行 > サーバーで実行 を選択します。
  5. 配備先のサーバーを選択し、配備を行います。
次へ

(2)統合運用管理ツールによる配備
  1. 06_ConvertTest.cpk06_CORBA_SA.zipを適当なディレクトリに保存します。
  2. 統合運用管理ツールを起動します。
  3. domain1を右クリックし接続を選択します。ユーザ名、パスワードを入力し接続ボタンをクリックします。
  4. domain1配下のアプリケーションを右クリックしコンポーネントの配備を選択します。
  5. コンポーネントタイプをCORBAアプリケーションに変更し、参照ボタンから06_ConvertTest.cpkを選択します。
    配備するアプリケーショングループ(apg1)とプロセスグループ(pg1)を選択します。
    配備ボタンをクリックすると配備が実行されます。
  6. domain1配下のアプリケーションサーバ > ESB > サービスアセンブリを右クリックしサービスアセンブリの配備を選択します。
  7. 参照ボタンから06_CORBA_SA.zipを選択します。
    配備するアプリケーショングループ(apg1)とプロセスグループ(pg2)を選択します。
    配備ボタンを押すと配備が実行されます。
次へ

(3)otxadminによる配備
  1. 06_ConvertTest.cpk06_CORBA_SA.zipを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deployコマンドで06_ConvertTest.cpkを配備します。
    06_ConvertTest.cpkは、WebOTX AS Enterpriseのアドバンスドモードのみ配備可能です。
    詳細は注意事項1を参照してください。
    アプリケーショングループとプロセスグループを指定する必要があるため以下を実行します。
    otxadmin> deploy --apgroup apg1 --pgroup pg1 <06_ConvertTest.cpkへのパス>
  4. 同様にdeploy-jbi-service-assemblyコマンドで06_CORBA_SA.zipの配備を行います。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <06_CORBA_SA.zipへのパス>
    この場合は、別途設定が必要となります。注意事項1を参照してください。
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup apg1 --pgroup pg2 <06_CORBA_SA.zipへのパス>
スタブクラスのクラスパスへの追加
06_ConvertTest.cpk が配備されると、以下のディレクトリに「ConvertTest.jar」が展開されます。
${AS_INSTALL}/domains/domain1/applications/06_ConvertTest/ConvertTest.jar
このjarファイルを、以下のディレクトリにコピーします。
${AS_INSTALL}/domains/domain1/jbi/bindings/CORBABinding/install_root/workspace/lib

以下のコマンドでCORBABindingの再起動を行います。
  1. CORBABinding を停止します。
    otxadmin> stop-jbi-component CORBABinding
  2. CORBABinding をシャットダウンします。
    otxadmin> shut-down-jbi-component CORBABinding
  3. CORBABinding を起動します。
    otxadmin> start-jbi-component CORBABinding
サーバアプリケーションの活性化
統合運用管理ツールもしくはotxadminから、配備したサーバアプリケーションを活性化します。

統合運用管理ツールを利用してサーバアプリケーションの活性化を行う場合、
アプリケーション > CORBAアプリケーション > 06_ConvertTest > ConvertTest.jarを右クリックし活性化を選択します。

otxadminを利用してサーバアプリケーションの活性化を行う場合、enableコマンドを実行します。
otxadmin > enable 06_ConvertTest

名前サーバへの登録
統合運用管理ツールもしくはotxadminから、配備したサーバアプリケーションを名前サーバへ登録します。

統合運用管理ツールを利用して名前サーバへ登録する場合、
アプリケーション > CORBAアプリケーション > 06_ConvertTest > ConvertTest.jar > function-ConvertTest を選択し、名前サーバへの登録タブを選択します。
名前サーバへの登録で、一時的に扱うを選択します。

otxadminを利用して名前サーバへ登録する場合、setコマンドを実行します。
otxadmin > set applications.corba-applications.06_ConvertTest.ConvertTest.jar.function-ConvertTest.bindType=0
どちらで設定した場合も、プロセスグループ(pg1)を再起動します。

サービスアセンブリの起動
統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。
なお、サービスアセンブリをDeveloper's Studioから配備した場合は起動処理は不要です。

(1)統合運用管理ツールによる起動
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 06_CORBA_SAを右クリックし起動を選択します。
(2)otxadminによる起動
  1. start-jbi-service-assemblyコマンドを実行します。
    otxadmin > start-jbi-service-assembly 06_CORBA_SA
実行
Developer's Studioもしくはコマンドから、クライアントを実行します。

(1)Developer's Studioによる実行
  1. Developer's Studioを起動します。
  2. ヘルプメニューからヘルプ目次をクリックします。
  3. 目次から、WebOTX ESB Help > サンプル集を開きます。
    表からproj_06_CORBA_AP.zipをクリックし、プロジェクトをインポートします。
  4. ウィンドウメニューから、設定を選択して、Java>ビルド・パス>クラスパス変数をクリックします。
    新規ボタンをクリックして、名前にAS_INSTALL、パスにWebOTXインストールパスを指定します。
  5. 実行メニューから、実行構成を選択して、Javaアプリケーション配下のrunを選択し、実行をクリックします。
(2)コマンドによる実行
実行後、以下の内容が表示されることを確認します。
---------------
<?xml version="1.0" encoding="UTF-8"?><opr_06_CORBA_SA_001Response xmlns="http://www.nec.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><result xmlns="">ok</result></opr_06_CORBA_SA_001Response>
times/messages = 78.0
Memo
Windowsで「指定されたレジストリキーまたは値が見つかりませんでした」と表示されバッチファイルの実行に失敗した場合は、注意事項2を参照してください。
また、WebOTXで運用するHTTPのポート番号がデフォルト値でない場合はバッチファイル、シェルスクリプト内で使用するポート番号を修正する必要があります。その場合は、注意事項3を参照してください。

メッセージログの確認
メッセージログを確認し、送信されたメッセージを確認します。
メッセージログ機能については2.16. メッセージログ機能の利用を参照してください。

環境クリア
サーバアプリケーションを閉塞し、配備したサーバアプリケーションとサービスアセンブリを配備解除します。
配備解除には環境に応じて以下の3種類の方法があります。

(1)Developer's Studioによる配備解除
サーバアプリケーションは、統合運用管理ツールあるいはコマンドから配備解除してください。
  1. ウィンドウ > ビューの表示 > サーバー を選択します。
  2. 表示されたサーバーのビューから配備したサービスアセンブリを右クリックし、除去を選択します。
(2)統合運用管理ツールによる閉塞・配備解除
  1. アプリケーション > CORBAアプリケーション > 06_ConvertTest > ConvertTest.jarを右クリックし、閉塞を選択します。
  2. アプリケーション > CORBAアプリケーション > 06_ConvertTestを右クリックし、配備解除を選択します。
  3. アプリケーションサーバ > ESB > サービスアセンブリ > 06_CORBA_SAを右クリックし、シャットダウンを選択します。
  4. シャットダウン完了後、再び06_CORBA_SAを右クリックし配備解除を選択します。
(3)otxadminによる閉塞・配備解除
  1. disableコマンドで06_ConvertTestを閉塞します。
    otxadmin> disable 06_ConvertTest
  2. undeployコマンドで06_ConvertTestを配備解除します。
    otxadmin> undeploy 06_ConvertTest
  3. shut-down-jbi-service-assemblyコマンドで06_CORBA_SAをシャットダウンします。
    otxadmin> shut-down-jbi-service-assembly 06_CORBA_SA
  4. undeploy-jbi-service-assemblyコマンドで06_CORBA_SAを配備解除します。
    otxadmin> undeploy-jbi-service-assembly 06_CORBA_SA

4.6.4. 注意事項

  1. サンプルを実行するWebOTX ASの制限
    このサンプルは、WebOTX AS Enterpriseのアドバンスドモードで評価することが前提となります。
    サーバアプリケーションの配備先はプロセスグループであるためです。
    WebOTX AS Express、もしくはWebOTX AS Standard/EnterpriseのスタンダードモードでESBを動作させることも可能ですが、
    サーバアプリケーションを配備するため、別途、WebOTX AS Enterpriseのアドバンスドモードが必要となります。
    この場合、クライアントアプリケーションを実行する前にCORBA BCの設定を一部変更する必要があります。
    (1)統合運用管理ツールによる設定変更
    以下の箇所に、corbaname://サーバアプリケーションを配備したマシンのIPアドレス:2809 を設定します。
    アプリケーションサーバ > ESB > コンポーネント > CORBAバインディング > 設定項目タブ >名前サーバと接続するためのURL
    (2)otxadminによる設定変更
    以下のコマンドを実行します。
    otxadmin > set server.jbi.components.CORBABinding.NameServerUrl=corbaname://サーバアプリケーションを配備したマシンのIPアドレス:2809

  2. WebOTXインストールパス取得のエラー
    run.batを実行した際に、レジストリからWebOTXインストールパスを取得できなかった場合、
    以下のように表示されます。
    「指定されたレジストリキーまたは値が見つかりませんでした」
    その際には、双方のバッチファイル内の、以下の2行の先頭に@remを追加し、
    echo get WebOTX install directory from registry.
    for /f "skip=2 tokens=2*" %%A in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\NEC\WebOTX\Installer /v PathName') do set AS_INSTALL=%%B
    以下の行の先頭の@remを削除し、AS_INSTALLにWebOTXインストールパスを手動で設定した後、バッチファイルを再度実行してください。
    @rem set AS_INSTALL=C:\WebOTX
  3. WebOTXで使用するHTTPポート番号
    run.batもしくはrun.shを実行する際には実際の運用環境に合わせてHTTPポート番号を変更する必要があります。
    WebOTXでは、Windows環境とUnix環境ではデフォルトで80ポートを使用します。
    それ以外のポート番号で運用している場合は、run.batもしくはrun.shの以下の箇所を適切なポート番号に修正してください。
    Windows環境(run.bat)の場合:
    java -cp %CLASSPATH% Test http://localhost:80/soapbc/06_test
    
    Unix環境(run.sh)の場合:
    java -cp $CLASSPATH Test http://localhost:80/soapbc/06_test