Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging

[目次][用語][索引][前へ][次へ]

7.4.5 ObjectMessageインタフェース

ObjectMessageインタフェースはシリアライズできるJavaオブジェクトを含むメッセージを送受信するために使用します。ObjectMessageインタフェースはMessageインタフェースを継承しているため,Messageインタフェースの機能を持っています。

<この項の構成>
(1) ペイロードの設定と取得
(2) 形式
(3) フィールド
(4) メソッド

(1) ペイロードの設定と取得

ObjectMessageインタフェースを使用することでペイロードを設定および取得できます。このペイロードはシリアライズできるJavaオブジェクトです。JMSメッセージの各要素については,「2.5.1 JMSメッセージの構成」を参照してください。

(2) 形式

 
public interface ObjectMessage extends Message
{
  public java.io.Serializable 
               getObject() throws JMSException;
  public void  setObject(java.io.Serializable object)
                 throws JMSException;
}
 

(3) フィールド

ありません。

(4) メソッド

「(2) 形式」に記載した順序で各メソッドを説明します。

(a) getObjectメソッド
 
public java.io.Serializable getObject() throws JMSException
 

直列化できるメッセージ本体データを返します。メッセージ本体が設定されていない場合はデフォルト値であるnullを返します。

(b) setObjectメソッド
 
public void setObject(java.io.Serializable object) throws JMSException
 

メッセージのデータを含む直列化できるオブジェクトを設定します。

setObjectメソッドの内部では引数オブジェクトのコピーを生成し,そのコピーをObjectMessageオブジェクトのペイロードに設定します。そのため,そのあと引数オブジェクトを変更してもObjectMessageオブジェクトのペイロードに影響しなくなります。

注意
ユーザが定義したクラスのオブジェクトをObjectMessageオブジェクトのペイロードに設定する場合は,ユーザが定義したクラスまたはクラスが含まれるJARファイルのクラスパスを,コンテナ拡張ライブラリとしてApplication ServerのJ2EEサーバ用オプション定義ファイルに指定してください。J2EEサーバ用オプション定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。
クラスパスが指定されていない状態で,ObjectMessageオブジェクトのペイロードにユーザが定義したクラスのオブジェクトを設定しようとすると,JMSExceptionが発生します。