ここでは,Cosminexus サービスプラットフォームが提供するカスタムアダプタ開発フレームワークのAPIについて説明します。
カスタムアダプタ開発フレームワークで定義されているインターフェースおよび例外クラスは,次の場所に格納されています。
<Cosminexusのインストールディレクトリ>¥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メソッド | カスタムアダプタを介してサービス部品を呼び出すときに呼び出されるメソッドです。サービス部品を呼び出す処理を記述します。 このメソッドは,サービスアダプタの呼び出し要求があるたびに呼び出されます。 |
図F-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サーバとプロトコルコンバータの間でメッセージを交換するためのインターフェースの一覧を次の表に示します。
表F-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;
}
メソッド名 | 説明 |
---|---|
getBytesメソッド | バイナリ形式の電文を取得します。 |
getMessageContextメソッド | 未サポートのメソッドです。 |
getMessageTypeメソッド | 要求メッセージに格納されている電文の種別を取得します。 |
getOperationNameメソッド | サービス部品呼び出し時に呼び出すオペレーションの名称を取得します。 |
getXMLDocumentメソッド | XML形式の電文を取得します。 |
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 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;
}
メソッド名 | 説明 |
---|---|
getMessageTypeメソッド | 応答メッセージに格納する電文の種別を取得します。 |
setBytesメソッド | 応答メッセージにバイナリ形式の電文を格納します。 |
setFaultメソッド(形式1) | サービス部品を呼び出すときに発生したフォルト情報を格納します。 |
setFaultメソッド(形式2) | サービス部品を呼び出すときに発生したフォルト情報を格納します。 |
setXMLDocumentメソッド | 応答メッセージに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;
プロトコルコンバータの開発時に発生する例外クラスの一覧を次の表に示します。
表F-2 プロトコルコンバータの例外クラス一覧
クラス名 | 説明 |
---|---|
CSCMsgCustomAdapterExceptionクラス | カスタムアダプタの初期化処理やサービス部品を呼び出す処理で例外が発生した場合に送出する例外です。 |
CSCMsgIllegalMessageTypeExceptionクラス | 電文の取得または格納時に,電文タイプと異なるタイプの電文形式のメソッドが呼ばれた場合に送出する例外です。 |
CSCMsgMultipleMessageInsertionExceptionクラス | すでに電文またはフォルト情報が格納されれた場合に送出する例外です。 電文またはフォルト情報を格納したあとに,再び電文またはフォルト情報を設定することはできません。 |
CSCMsgInvalidMessageException クラス | 要求電文の場合,格納さてている電文の種別(形式)が不正なときに送出する例外です。 応答電文の場合,不正な形式の電文種別を指定しているときに送出する例外です。 |
CSCMsgResourceAccessException クラス | リソースアクセス処理中にエラーが発生した場合に送出する例外です。 次のどちらかの場合に発生します。
|