Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編
ここでは,サービスプラットフォームが提供するカスタムアダプタ開発フレームワークのAPIについて説明します。
カスタムアダプタ開発フレームワークで定義されているインターフェースおよび例外クラスは,次の場所に格納されています。
<サービスプラットフォームのインストールディレクトリ>\CSC\lib\csc_adapter.jar
汎用カスタムアダプタをコンパイルするときは,このJARファイルをクラスパスに含めてください。
public interface CSCMsgCustomProtocolConverter
{
public void start()
throws CSCMsgCustomAdapterException;
public void stop();
public void setCustomAdapterContext(CSCMsgCustomAdapterContext adapterContext);
public void invoke(CSCMsgRequestMessage requestMessage,
CSCMsgResponseMessage responseMessage)
throws CSCMsgCustomAdapterException;
}
| メソッド名 | 説明 |
|---|---|
| startメソッド | 汎用カスタムアダプタが開始されるときに呼び出されるメソッドです。プロトコルコンバータ開始処理を実装します。 このメソッドは,一度だけ呼び出されます。 |
| stopメソッド | 汎用カスタムアダプタが終了されるときに呼び出されるメソッドです。プロトコルコンバータ終了処理を実装します。 このメソッドは,一度だけ呼び出されます。 |
| setCustomAdapterContextメソッド | アダプタコンテキストが設定されるときに呼び出されるメソッドです。与えられたアダプタコンテキストをプロトコルコンバータのインスタンスフィールドに格納する処理を記述します。 このメソッドは,一度だけ呼び出されます。 |
| invokeメソッド | 汎用カスタムアダプタを介してサービス部品を呼び出すときに呼び出されるメソッドです。サービス部品を呼び出す処理を記述します。 このメソッドは,サービスアダプタの呼び出し要求があるたびに呼び出されます。 |
図B-1 カスタムアダプタ開発フレームワークからの各メソッドの呼び出し順序
public void start() throws CSCMsgCustomAdapterException;
public void stop();
public void setCustomAdapterContext(CSCMsgCustomAdapterContext adapterContext);
public void invoke (CSCMsgRequestMessage requestMessage,
CSCMsgResponseMessage responseMessage)
throws CSCMsgCustomAdapterException;
public interface CSCMsgCustomAdapterContext
{
public String getAdapterName();
public Properties getProperties();
public byte[] getResourceAsBytes(String fileName)
throws CSCMsgResourceAccessException;
public java.io.InputStream getResourceAsStream(String fileName)
throws CSCMsgResourceAccessException;
}
| メソッド名 | 説明 |
|---|---|
| getAdapterNameメソッド | 汎用カスタムアダプタの名称を取得します。 |
| getPropertiesメソッド | カスタムアダプタプロパティファイルの内容をPropertiesとして取得します。 |
| getResourceAsBytesメソッド | リソースファイルの内容をバイナリ形式で取得します。 |
| getResourceAsStreamメソッド | リソースファイルにアクセスするためのストリームを取得します。 |
public String getAdapterName();
public Properties getProperties();
public byte[] getResourceAsBytes(String fileName) throws CSCMsgResourceAccessException;
public java.io.InputStream getResourceAsStream(String fileName) throws CSCMsgResourceAccessException;
HCSCサーバとプロトコルコンバータの間でメッセージを交換するためのインターフェースの一覧を次の表に示します。
表B-1 メッセージ操作に使用するAPIの一覧
| インターフェース名 | 説明 |
|---|---|
| CSCMsgMessageConstantインターフェース | メッセージの操作に必要な定数を定義します。 |
| CSCMsgRequestMessageインターフェース | サービス部品呼び出しに必要な情報(オペレーション名,電文など)を取得するためのメソッドを提供します。 |
| CSCMsgResponseMessageインターフェース | サービス部品呼び出し結果(電文またはフォルト情報)を格納するためのメソッドを提供します。 |
public interface CSCMsgMessageConstant
{
public static final int MESSAGE_TYPE_NONE;
public static final int MESSAGE_TYPE_XML;
public static final int MESSAGE_TYPE_BINARY;
public static final int MESSAGE_TYPE_ANY;
}
public interface CSCMsgRequestMessage
{
public byte[] getBytes()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
public Map getMessageContext();
public int getMessageType();
public String getOperationName();
public org.w3c.dom.Document getXMLDocument()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
public byte[] getXMLBytes()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
}
| メソッド名 | 説明 |
|---|---|
| getBytesメソッド | バイナリ形式の電文を取得します。 |
| getMessageContextメソッド | ビジネスプロセス経由で汎用カスタムアダプタを呼び出した場合に経由したビジネスプロセスに関する情報を返却します。 |
| getMessageTypeメソッド | 要求メッセージに格納されている電文の種別を取得します。 |
| getOperationNameメソッド | サービス部品呼び出し時に呼び出すオペレーションの名称を取得します。 |
| getXMLDocumentメソッド | XML形式の電文を取得します。 |
| getXMLBytesメソッド | XML形式の電文をバイト配列で取得します。 |
public byte[] getBytes()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
表B-2 取得情報一覧
| 情報種別 | Mapの内容 | 説明 | ||
|---|---|---|---|---|
| 要素 | 値 | |||
| 要素名 | 要素の型 | 値の型 | ||
| ビジネスプロセス名 | CSCMsgCustomAdapterConstant.ContextType.BP_DEFINITION_NAME | enum | java.lang.String | 汎用カスタムアダプタの呼び出し元のビジネスプロセス名※1 |
| ビジネスプロセスのバージョン | CSCMsgCustomAdapterConstant.ContextType.BP_VERSION | enum | java.lang.String | 汎用カスタムアダプタの呼び出し元のビジネスプロセスのバージョン※1 |
| サービス呼出アクティビティ名 | CSCMsgCustomAdapterConstant.ContextType.BP_INVOKEACTIVITY_NAME | enum | java.lang.String | 汎用カスタムアダプタの呼び出し元のビジネスプロセスのサービス呼出アクティビティ名※1 |
| 汎用カスタムアダプタのサービス名 | CSCMsgCustomAdapterConstant.ContextType.BP_INVOKEACTIVITY_CUSTOMADAPTERNAME | enum | java.lang.String | サービス呼出アクティビティから呼び出される汎用カスタムアダプタのサービス名※1 |
| オペレーション名 | CSCMsgCustomAdapterConstant.ContextType.BP_INVOKEACTIVITY_OPERATIONNAME | enum | java.lang.String | サービス呼出アクティビティのオペレーション名※1※2 |
| プロセスインスタンスID | CSCMsgCustomAdapterConstant.ContextType.BP_PROCESSINSTANCEID | enum | java.lang.String | プロセスインスタンスID※1 |
| HCSCサーバ名 | CSCMsgCustomAdapterConstant.ContextType.SERVERNAME_HCSC | enum | java.lang.String | HCSCサーバ名 |
| クラスタ名 | CSCMsgCustomAdapterConstant.ContextType.SERVERNAME_CLUSTER | enum | java.lang.String | クラスタ名 |
| J2EEサーバ名 | CSCMsgCustomAdapterConstant.ContextType.SERVERNAME_J2EE | enum | java.lang.String | J2EEサーバ名 |
public Map getMessageContext();
public int getMessageType();
public String getOperationName();
public org.w3c.dom.Document getXMLDocument()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
public byte[] getXMLBytes()
throws CSCMsgIllegalMessageTypeException,
CSCMsgInvalidMessageException;
public interface CSCMsgResponseMessage
{
public int getMessageType();
public void setBytes(byte[] message)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setFault(String faultCode,
String faultString,
String faultActor,
byte[] faultDetail)
throws CSCMsgMultipleMessageInsertionException;
public void setFault(String faultCode,
String faultString,
String faultActor,
org.w3c.dom.Document faultDetail)
throws CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setXMLDocument(org.w3c.dom.Document dom)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setXMLBytes(byte[] byte)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
}
| メソッド名 | 説明 |
|---|---|
| getMessageTypeメソッド | 応答メッセージに格納する電文の種別を取得します。 |
| setBytesメソッド | 応答メッセージにバイナリ形式の電文を格納します。 |
| setFaultメソッド(形式1) | サービス部品を呼び出すときに発生したフォルト情報を格納します。 |
| setFaultメソッド(形式2) | サービス部品を呼び出すときに発生したフォルト情報を格納します。 |
| setXMLDocumentメソッド | 応答メッセージにXML形式の電文を格納します。 |
| setXMLBytesメソッド | 応答メッセージに,XML形式の電文をバイト配列で格納します。 |
public int getMessageType();
public void setBytes(byte[] message)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setFault(String faultCode,
String faultString,
String faultActor,
byte[] faultDetail)
throws CSCMsgMultipleMessageInsertionException;
public void setFault(String faultCode,
String faultString,
String faultActor,
org.w3c.dom.Document faultDetail)
throws CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setXMLDocument(org.w3c.dom.Document dom)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public void setXMLBytes(byte[] byte)
throws CSCMsgIllegalMessageTypeException,
CSCMsgMultipleMessageInsertionException,
CSCMsgInvalidMessageException;
public interface CSCMsgCustomAdapterConstant {
public enum ContextType {
BP_DEFINITION_NAME,
BP_VERSION,
BP_INVOKEACTIVITY_NAME,
BP_INVOKEACTIVITY_CUSTOMADAPTERNAME,
BP_INVOKEACTIVITY_OPERATIONNAME,
BP_PROCESSINSTANCEID,
SERVERNAME_HCSC,
SERVERNAME_CLUSTER,
SERVERNAME_J2EE;
}
}
プロトコルコンバータの開発時に発生する例外クラスの一覧を次の表に示します。
表B-3 プロトコルコンバータの例外クラス一覧
| クラス名 | 説明 |
|---|---|
| CSCMsgCustomAdapterExceptionクラス | 汎用カスタムアダプタの初期化処理やサービス部品を呼び出す処理で例外が発生した場合に送出する例外です。 |
| CSCMsgIllegalMessageTypeExceptionクラス | 電文の取得または格納時に,電文タイプと異なるタイプの電文形式のメソッドが呼ばれた場合に送出する例外です。 |
| CSCMsgMultipleMessageInsertionExceptionクラス | すでに電文またはフォルト情報が格納されれた場合に送出する例外です。 電文またはフォルト情報を格納したあとに,再び電文またはフォルト情報を設定することはできません。 |
| CSCMsgInvalidMessageException クラス | 要求電文の場合,格納さてている電文の種別(形式)が不正なときに送出する例外です。 応答電文の場合,不正な形式の電文種別を指定しているときに送出する例外です。 |
| CSCMsgResourceAccessException クラス | リソースアクセス処理中にエラーが発生した場合に送出する例外です。 次のどちらかの場合に発生します。
|
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.