付録A.2 カスタム受付の開発
ここでは,カスタム受付の開発について説明します。
カスタム受付は,開発環境で開発します。
(1) 開発するファイルの構成
開発環境で作成するカスタム受付EARファイルの構成を次に示します。
├ META-INF │├ application.xml … 1. │├ cosminexus.xml … 2. │└ MANIFEST.MF … 3. └ 受付処理ファイル … 4.
-
EARファイルのデプロイメント記述子
-
EARファイルのアプリケーション属性ファイル
-
EARファイルのマニフェストファイル
-
作成した受付処理のアーカイブファイル
なお,カスタム受付EARファイルの構成は変更しないでください。受付処理の動作に必要な定義情報などを使用したい場合は,カスタム受付ユーザファイルを作成してください。カスタム受付ユーザファイルについては,「付録A.2(3)(d) カスタム受付ユーザファイル」を参照してください。
(2) 受付処理ファイルを作成する
開発者は,受付処理の実装ファイルおよび必要な定義ファイルをアーカイブして,受付処理ファイルを作成します。
- 注意事項
-
受付処理の実行時に確保したリソースは,処理が終了しても保持し続けるため,システム全体に高い負荷が掛かった場合に,Javaヒープ不足やMetaspace領域不足などが原因でOutOfMemoryErrorが発生することがあります。そのため,OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や,ロールバックなどのエラー処理を実装しておく必要があります。
次に,受付処理ファイルの詳細を説明します。
(a) 受付処理ファイルの形式
受付処理ファイルの形式には,WARファイル形式またはEJB-JARファイル形式を選択できます。受付処理がサポートするプロトコルに応じて,どちらかを選択してください。
(b) 受付処理の実装に使用するライブラリ
受付処理の実装には,カスタム受付フレームワークが提供するAPIのライブラリJARファイルを使用します。受付処理の実装時には,次に示すJARファイルをクラスパスに指定する必要があります。
<サービスプラットフォームのインストールディレクトリ>\CSC\lib\cscmsg.jar <サービスプラットフォームのインストールディレクトリ>\CSC\lib\cscmsg_urecp_custom.jar
(c) 受付処理の実装内容
受付処理で実装する内容は,次の1.〜3.です。
-
サービスリクエスタからのサービス部品呼び出し要求を受け付ける処理
-
カスタム受付フレームワークに要求電文を渡す処理
-
カスタム受付フレームワークから返ってきた応答電文を,サービスリクエスタに返す処理
なお,実装時に利用するカスタム受付フレームワークのAPIの詳細は,「付録A.3 カスタム受付フレームワークのAPI」を参照してください。
(d) デプロイメント記述子の設定
受付処理ファイルのデプロイメント記述子を設定します。
設定する内容は任意です。
(e) 受付処理ファイルの作成
受付処理の実装ファイルおよび必要な定義ファイルをアーカイブした受付処理ファイルを作成します。
作成手順は,受付処理ファイルの形式に依存します。
なお,作成する受付処理ファイルは,「csc」で始まる名称にはしないでください。「csc」で始まる名称にした場合,動作は保証されません。
(3) 定義ファイルを作成する
カスタム受付で設定する定義ファイルは次の4つです。
-
デプロイメント記述子(application.xml)
-
アプリケーション属性ファイル(cosminexus.xml)
-
マニフェストファイル(MANIFEST.MF)
-
カスタム受付ユーザファイル
次に,それぞれのファイルについて説明します。
(a) デプロイメント記述子(application.xml)
カスタム受付EARファイルのデプロイメント記述子を設定します。
デプロイメント記述子の設定は,サービスプラットフォームが提供するテンプレートを基に受付処理の設定を追加します。テンプレートの格納先を次に示します。
<サービスプラットフォームのインストールディレクトリ>\CSC\samples\urecp\application.xml
デプロイメント記述子のテンプレートファイルに記載されている要素および値の編集可否を次の表に示します。なお,デプロイメント記述子のDTDは,「application_1_3.dtd」です。
要素 |
編集可否 |
---|---|
<?xml version="1.0" encoding="UTF-8"?> |
× |
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd"> |
× |
<!-- All Rights Reserved. Copyright (C) 2010, Hitachi, Ltd. --> |
× |
<application> |
× |
<display-name>CSCMsgCustomServiceDelivery</display-name> |
× |
<description></description> |
○ |
<module> |
○ |
<web> |
○ |
<web-uri>web-uri</web-uri> |
○ |
<context-root>context-root</context-root> |
○ |
</web> |
○ |
</module> |
○ |
<module> |
○ |
<ejb>ejb</ejb> |
○ |
</module> |
○ |
<module> |
○ |
<java>java</java> |
○ |
</module> |
○ |
</application> |
× |
(b) アプリケーション属性ファイル(cosminexus.xml)
カスタム受付EARファイルのアプリケーション属性ファイルを設定します。
アプリケーション属性ファイルの設定は,サービスプラットフォームが提供するテンプレートを基に受付処理の設定を追加します。テンプレートの格納先を次に示します。
<サービスプラットフォームのインストールディレクトリ>\CSC\samples\urecp\cosminexus.xml
アプリケーション属性ファイルのテンプレートファイルに記載されている要素および値の編集可否を次の表に示します。なお,アプリケーション属性ファイルのDTDは「cosminexus_8_0.dtd」です。
要素 |
編集可否 |
---|---|
<?xml version="1.0" encoding="UTF-8"?> |
× |
<!DOCTYPE cosminexus-app PUBLIC "-//Hitachi, Ltd.//DTD Cosminexus 8.0//EN" "file:///C:/Program%20Files/Hitachi/Cosminexus/CC/admin/dtds/cosminexus_8_0.dtd"> |
× |
<!-- All Rights Reserved. Copyright (C) 2010, Hitachi, Ltd. --> |
× |
<cosminexus-app> |
× |
<start-order>180</start-order> |
× |
<ejb-jar> |
× |
<module-name>cscmsg_urecp_custom.jar</module-name> |
× |
<session> |
× |
<ejb-name>CSCMsgCustomFwInitializerEJB</ejb-name> |
× |
<maximum-sessions>0</maximum-sessions> |
× |
<stateless> |
× |
<pooled-instance> |
× |
<minimum>1</minimum> |
× |
<maximum>1</maximum> |
× |
</pooled-instance> |
× |
</stateless> |
× |
<start-order>10</start-order> |
× |
</session> |
× |
<session> |
× |
<ejb-name>CSCMsgCustomOperationCallerEJB</ejb-name> |
× |
<maximum-sessions>0</maximum-sessions> |
× |
<stateless> |
× |
<pooled-instance> |
× |
<minimum>0</minimum> |
× |
<maximum>0</maximum> |
× |
</pooled-instance> |
× |
</stateless> |
× |
<start-order>20</start-order> |
× |
<ejb-transaction-timeout> |
× |
<method> |
× |
<method-name>*</method-name> |
× |
</method> |
× |
<transaction-timeout>0</transaction-timeout> |
× |
</ejb-transaction-timeout> |
× |
</session> |
× |
</ejb-jar> |
× |
</cosminexus-app> |
× |
(c) マニフェストファイル(MANIFEST.MF)
カスタム受付EARファイルのマニフェストファイル(MANIFEST.MF)を記載します。
なお,マニフェストファイルを作成するかどうかは任意です。
(d) カスタム受付ユーザファイル
受付処理に関する設定を外部ファイル化したい場合などに,カスタム受付ユーザファイルを作成します。カスタム受付ユーザファイルは,カスタム受付フレームワークのAPIを使用して,受付処理の中で読み込むことができます。カスタム受付ユーザファイルを読み込むためのAPIの詳細は,「付録A.3 カスタム受付フレームワークのAPI」を参照してください。
カスタム受付ユーザファイルは,開発環境でカスタム受付を定義するときに,独自定義ファイルとして登録します。カスタム受付の定義については,「付録A.4 カスタム受付の定義」を参照してください。
(4) カスタム受付EARファイルを作成する
antやjarコマンドなどを使用して,受付処理ファイルおよび定義ファイルをアーカイブしたカスタム受付EARファイルを作成します。