org.seasar.jms.core
インタフェース MessageReceiver

既知の実装クラスの一覧:
MessageReceiverImpl

public interface MessageReceiver

JMSメッセージを受信するコンポーネントのインタフェースです。

受信したメッセージを容易に処理するために次のメソッドを使用することができます。

これらのメソッドは受信したJMS標準メッセージ型のペイロードを戻り値として返します。

受信したJMSメッセージを独自に処理するには次のメソッドを使用することができます。

引数で指定するMessageHandlerにより自由にJMSメッセージを処理することができます。 このメソッドはMessageHandler.handleMessage(MSGTYPE)の戻り値をそのまま返します。

受信したJMSメッセージをそのまま取得するには次のメソッドを使用することができます。

いずれの場合もタイムアウトした場合はnullを返します。

受信したメッセージはgetMessage()メソッドで取得することもできます. 受信したメッセージのJMSヘッダを以下のメソッドで取得することができます.

このコンポーネントはインスタンスモードPROTOTYPEで使われることを想定しており、スレッドセーフではありません。

作成者:
koichik

メソッドの概要
 long getExpiration()
          JMSメッセージのexpiration ヘッダの値を返します。
 Message getMessage()
          受信したJMSメッセージを返します。
 String getMessageID()
          JMSメッセージのmessageID ヘッダの値を返します。
 long getTimestamp()
          JMSメッセージのtimestamp ヘッダの値を返します。
 Message receive()
          JMSメッセージを受信してそのまま返します。
<MSGTYPE extends Message,T>
T
receive(MessageHandler<MSGTYPE,T> messageHandler)
          JMSメッセージを受信してMessageHandlerが処理した結果を返します。
 byte[] receiveBytes()
          JMSのBytesMessageを受信してペイロード(メッセージボディ)をバイト配列として返します。
 Map<String,Object> receiveMap()
          JMSのMapMessageを受信してペイロード(メッセージボディ)をMapとして返します。
 Serializable receiveObject()
          JMSのObjectMessageを受信してペイロード(メッセージボディ)をSerializableオブジェクトとして返します。
 String receiveText()
          JMSのTextMessageを受信してペイロード(メッセージボディ)を文字列として返します。
 MessageReceiver setDurable(boolean durable)
          JMSメッセージをデュラブル(継続的)に受信する場合はtrueに設定します。
 MessageReceiver setMessageSelector(String messageSelector)
          受信するJMSメッセージを選択するためのメッセージセレクタを指定します。
 MessageReceiver setNoLocal(boolean noLocal)
          受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrueに設定します。
 MessageReceiver setSubscriptionName(String subscriptionName)
          JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名を設定します。
 MessageReceiver setTimeout(long timeout)
          JMSメッセージを受信するまで待機する時間をミリ秒単位で設定します。
 

メソッドの詳細

setTimeout

MessageReceiver setTimeout(long timeout)
JMSメッセージを受信するまで待機する時間をミリ秒単位で設定します。

timeout < 0 の場合はJMSメッセージを受信するまで無制限に待機します。デフォルトです。
timeout > 0 場合はその時間だけ待機します。
timeout == 0 の場合は待機しません。

パラメータ:
timeout - JMSメッセージを受信するまで待機する時間 (ミリ秒単位)
戻り値:
このインスタンス自身

setMessageSelector

MessageReceiver setMessageSelector(String messageSelector)
受信するJMSメッセージを選択するためのメッセージセレクタを指定します。 メッセージセレクタの詳細はMessageを参照してください。

パラメータ:
messageSelector - 受信するJMSメッセージを選択するためのメッセージセレクタ
戻り値:
このインスタンス自身

setNoLocal

MessageReceiver setNoLocal(boolean noLocal)
受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrueに設定します。 デフォルトはfalseです。 JMSデスティネーションがトピックの場合にのみ有効です。

パラメータ:
noLocal - 受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrue、それ以外の場合はfalse
戻り値:
このインスタンス自身

setDurable

MessageReceiver setDurable(boolean durable)
JMSメッセージをデュラブル(継続的)に受信する場合はtrueに設定します。デフォルトはfalseです。 JMSデスティネーションがトピックの場合にのみ有効です。

パラメータ:
durable - JMSメッセージをデュラブル(継続的)に受信する場合はtrue、それ以外の場合はfalse
戻り値:
このインスタンス自身

setSubscriptionName

MessageReceiver setSubscriptionName(String subscriptionName)
JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名を設定します。 JMSデスティネーションがトピックで、JMSメッセージをデュラブルに受信する場合にのみ有効です。

パラメータ:
subscriptionName - JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名
戻り値:
このインスタンス自身

receiveBytes

byte[] receiveBytes()
JMSのBytesMessageを受信してペイロード(メッセージボディ)をバイト配列として返します。

戻り値:
受信したBytesMessageのペイロードです。タイムアウトとした場合はnullを返します。
例外:
ClassCastException - 受信したJMSメッセージがBytesMessageではなかった場合にスローされます。

receiveText

String receiveText()
JMSのTextMessageを受信してペイロード(メッセージボディ)を文字列として返します。

戻り値:
受信したTextMessageのペイロードです。タイムアウトとした場合はnullを返します。
例外:
ClassCastException - 受信したJMSメッセージがTextMessageではなかった場合にスローされます。

receiveObject

Serializable receiveObject()
JMSのObjectMessageを受信してペイロード(メッセージボディ)をSerializableオブジェクトとして返します。

戻り値:
受信したObjectMessageのペイロードです。タイムアウトとした場合はnullを返します。
例外:
ClassCastException - 受信したJMSメッセージがObjectMessageではなかった場合にスローされます。

receiveMap

Map<String,Object> receiveMap()
JMSのMapMessageを受信してペイロード(メッセージボディ)をMapとして返します。

戻り値:
受信したMapMessageのペイロードです。タイムアウトとした場合はnullを返します。
例外:
ClassCastException - 受信したJMSメッセージがMapMessageではなかった場合にスローされます。

receive

<MSGTYPE extends Message,T> T receive(MessageHandler<MSGTYPE,T> messageHandler)
JMSメッセージを受信してMessageHandlerが処理した結果を返します。

型パラメータ:
MSGTYPE - JMSメッセージの型
T - JMSメッセージを処理した結果の型
パラメータ:
messageHandler - 受信したメッセージを処理するMessageHandler
戻り値:
受信したJMSメッセージをMessageHandlerが処理した結果です。タイムアウトとした場合はnullを返します。

receive

Message receive()
JMSメッセージを受信してそのまま返します。

戻り値:
受信したJMSメッセージです。タイムアウトとした場合はnullを返します。

getMessage

Message getMessage()
受信したJMSメッセージを返します。

JMSメッセージを受信していない場合はnullを返します.

戻り値:
受信したJMSメッセージ

getMessageID

String getMessageID()
JMSメッセージのmessageID ヘッダの値を返します。

戻り値:
JMSメッセージのmessageIDヘッダの値
例外:
SJMSRuntimeException - JMS実装で例外が発生した場合にスローされます
EmptyRuntimeException - JMSメッセージを受信していない場合

getTimestamp

long getTimestamp()
JMSメッセージのtimestamp ヘッダの値を返します。

戻り値:
JMSメッセージのtimestampヘッダの値
例外:
SJMSRuntimeException - JMS実装で例外が発生した場合にスローされます
EmptyRuntimeException - JMSメッセージを受信していない場合

getExpiration

long getExpiration()
JMSメッセージのexpiration ヘッダの値を返します。

戻り値:
JMSメッセージのexpirationヘッダの値
例外:
SJMSRuntimeException - JMS実装で例外が発生した場合にスローされます
EmptyRuntimeException - JMSメッセージを受信していない場合


Copyright © 2005-2009 The Seasar Foundation. All Rights Reserved.