4.17. File、HTTP バインディングとSequencing、XSLT エンジンの利用

4.17.1. 概要

入力ディレクトリからXMLファイルを取得し、SeqHandlerにメッセージの<command>により
XSLT SEかHTTP BCか送信し、返答の内容を出力ディレクトリに保存します。


図4.17.1-1



  1. File BC(Inbound)が入力ディレクトリからファイルを取得します。
  2. File BC(Inbound)はSequencing SEに取得したメッセージを転送します。
  3. SeqHandlerは受信したXMLメッセージの<command>によりXSLT SEかHTTP BCか送信します。
  4. XSLT SEやHTTP BCは取得したファイルを処理し、Sequencing SEへ返信します。
  5. Sequencing SEは返答をFile BCに転送します。
  6. File BCは応答を出力ディレクトリにファイルとして出力します。

4.17.2. 構成

ファイル名 説明
17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zip 入力ディレクトリからファイルを受け取り処理するサービスアセンブリです。
17_http_outbound_servlet.war ESBからデータを受け取るWebアプリケーションです。
17_TestData.xml クライアントが送信するテストデータです。
proj_17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zip メッセージ変換のサービスアセンブリのプロジェクトファイルです。
proj_17_http_outbound_servlet.zip Webアプリケーションのプロジェクトファイルです。
proj_17_SEQHandler.zip SequencingHandlerのプロジェクトファイルです。

4.17.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。

環境構築
実行環境の構築を行います。

起動状況確認
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 : HTTPBinding
     State: Started
     --------------------------------
    
    FileBindingとHTTPBindingがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component FileBinding
  5. ログイン後、list-jbi-service-enginesコマンドで各サービスエンジンの起動状況を確認します。
    otxadmin> list-jbi-service-engines
    
    ================================
    List of Service Engines
    ================================
    Name : CBREngine
    State: Started
    --------------------------------
    Name : SequencingEngine
    State: Started
    --------------------------------
    Name : UserProcessorEngine
    State: Started
    --------------------------------
    Name : XSLTEngine
    State: Started
    --------------------------------
    
    SequencingEngineがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component SequencingEngine
配備
17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zip17_http_outbound_servlet.warの配備を行います。

配備には環境に応じて以下の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 Guide(Enterprise Service Bus) > サンプル集を開きます。
    表からproj_17_FileInbound_SeqHandler_SEQ_XSLT_HTTPproj_17_http_outbound_servletをそれぞれクリックすることで、
    プロジェクトをインポートします。
  4. UNIX環境で実行する場合は、File BCの設定を変更する必要があります。
    パッケージ・エクスプローラからFileSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    入力ファイル格納ディレクトリ、出力ファイル格納ディレクトリ、処理ディレクトリを適切に修正してください。


    図4.17.3-1



    外部のWebサーバのポートが80ではない場合、HTTP BCの設定を変更する必要があります。
    パッケージ・エクスプローラからHTTPSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    外部HTTPサーバーのエンドポイントURLを適切に修正してください。


    図4.17.3-2



  5. パッケージエクスプローラからプロジェクトを右クリックし、実行 > サーバーで実行 を選択します。
  6. 配備先のサーバーを選択し、配備を行います。
  7. 同様にしてインポートした全てのプロジェクトを配備します。
次へ

(2)統合運用管理ツールによる配備
  1. 17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zip17_http_outbound_servlet.warを適当なディレクトリに保存します。
  2. 統合運用管理ツールを起動します。
  3. domain1を右クリックし接続を選択します。ユーザ名、パスワードを入力し接続ボタンをクリックします。
  4. コンポーネントタイプをWebコンポーネントに変更し、参照ボタンから17_http_outbound_servlet.warを選択します。
    配備ボタンをクリックすると配備が実行されます。
  5. domain1配下のアプリケーションサーバ > ESB > サービスアセンブリを右クリックしサービスアセンブリの配備を選択します。
  6. 参照ボタンから17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zipを選択します。
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は、アプリケーショングループとプロセスグループを指定します。
    配備ボタンを押すと配備が実行されます。
    ただしUNIX環境で実行する場合は配備ボタンでなく次へボタンを押します。
    FileSUエンドポイントを選択し、各ディレクトリパスを修正してください。


    図4.17.3-3



    ただしポートが適切ではない場合は配備ボタンでなく次へボタンを押します。
    HTTPSUエンドポイントを選択し、エンドポイントURLを修正してください。


    図4.17.3-4



次へ

(3)otxadminによる配備
  1. 17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zip17_http_outbound_servlet.warを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deployコマンドで17_http_outbound_servlet.warを配備します。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy <17_http_outbound_servlet.warへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は、
    アプリケーショングループとプロセスグループを指定する必要があるため以下を実行します。
    otxadmin> deploy --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <17_http_outbound_servlet.warへのパス>
  4. 同様にdeploy-jbi-service-assemblyコマンドで17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zipの配備を行います。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zipへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <17_FileInbound_SeqHandler_SEQ_XSLT_HTTP.zipへのパス>
    ただしUNIX環境で実行する場合はmodifyオプションをtrueにし、FileSUのエンドポイントの各ディレクトリパスを修正してください。
サービスアセンブリの起動
統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。

(1)統合運用管理ツールによる起動
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 17_FileInbound_SeqHandler_SEQ_XSLT_HTTPを右クリックし起動を選択します。
(2)otxadminによる起動
  1. start-jbi-service-assemblyコマンドを実行します。
    otxadmin> start-jbi-service-assembly 17_FileInbound_SeqHandler_SEQ_XSLT_HTTP

実行
入力ディレクトリにファイルを投入し、応答の出力ファイルを確認します。
  1. 17_TestData.xmlをC:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\inにコピーします。
    C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\inディレクトリにコピーしたファイルは削除されます。
    C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\outにout_17_TestData_xxxxx.xmlが生成されていることを確認します。内容は下記の通りです。
    <?xml version="1.0"
    encoding="UTF-8"?><outputxml> <record>
    <EmployeeId>34284</EmployeeId>
    <FirstName>Chris</FirstName>
    <MiddleName>F</MiddleName>
    <LastName>Arrasmith</LastName>
    <NumberOfHoursWorked>176</NumberOfHoursWorked>
    <CurrentAddress> Apt 41, Denube Lake , Belmont ,
    CA</CurrentAddress> <ContactNumber>1 703 204
    4285</ContactNumber> </record> </outputxml>
  2. 17_TestData.xml<command>の値を変更し、C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\inにコピーします。
    同様に、C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\inディレクトリにコピーしたファイルは削除されます。
    C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTP\outout_17_TestData_xxxxx.xmlが生成されていることを確認します。内容は下記の通りです。
    <inputxml><record><FName>Chris</FName><SurName>Arrasmith</SurName><MName>F</MName><Id>34284</Id><Hours>176</Hours>
    <Phone>1 703 204 4285</Phone><Location> Apt 41,
    Denube Lake , Belmont ,
    CA</Location></record></inputxml>

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

環境クリア
配備したWebサービスとサービスアセンブリを配備解除し、
入出力に使用したディレクトリの削除を行います。
配備解除には環境に応じて以下の3種類の方法があります。

(1)Developer's Studioによる配備解除
  1. ウィンドウ > ビューの表示 > サーバー を選択します。
  2. 表示されたサーバーのビューから配備したWebサービスを右クリックし、除去を選択します。
  3. 同様に配備したサービスアセンブリを右クリックし、除去を選択します。
(1)統合運用管理ツールによる配備解除
  1. アプリケーション > Webモジュール > 17_http_outbound_servletを右クリックし、配備解除を選択します。
  2. アプリケーションサーバ > ESB > サービスアセンブリ > 17_FileInbound_SeqHandler_SEQ_XSLT_HTTPを右クリックし、
    シャットダウンを選択します。
  3. シャットダウン完了後、再び17_FileInbound_SeqHandler_SEQ_XSLT_HTTPを右クリックし配備解除を選択します。
(2)otxadminによる配備解除
  1. undeployコマンドで17_http_outbound_servletを配備解除します。
    otxadmin> undeploy 17_http_outbound_servlet
  2. shut-down-jbi-service-assemblyコマンドで17_FileInbound_SeqHandler_SEQ_XSLT_HTTPをシャットダウンします。
    otxadmin> shut-down-jbi-service-assembly 17_FileInbound_SeqHandler_SEQ_XSLT_HTTP
  3. undeploy-jbi-service-assemblyコマンドで17_FileInbound_SeqHandler_SEQ_XSLT_HTTPを配備解除します。
    otxadmin> undeploy-jbi-service-assembly 17_FileInbound_SeqHandler_SEQ_XSLT_HTTP
入出力ディレクトリの削除
  1. C:\esb_samples\17_FileInbound_SeqHandler_SEQ_XSLT_HTTPディレクトリを削除します。

4.17.4. 注意事項

特になし。