org.seasar.jms.core.impl
クラス MessageReceiverImpl

java.lang.Object
  上位を拡張 org.seasar.jms.core.impl.MessageReceiverImpl
すべての実装されたインタフェース:
MessageReceiver

public class MessageReceiverImpl
extends Object
implements MessageReceiver

JMSメッセージを受信するコンポーネントの実装クラスです。

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

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

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

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

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

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

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

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

作成者:
koichik

入れ子のクラスの概要
 class MessageReceiverImpl.SessionHandlerImpl
          JMSセッションからJMSメッセージを受信するためのSessionHandler実装クラスです。
 
フィールドの概要
protected  DestinationFactory destinationFactory
          受信に使用するJMSデスティネーションのファクトリ
protected  boolean durable
          JMSメッセージをデュラブル(継続的)に受信する場合はtrue
protected  Message message
          JMSメッセージ
protected  String messageSelector
          受信するJMSメッセージを選択するためのメッセージセレクタ
protected  boolean noLocal
          受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrue
protected  SessionFactory sessionFactory
          受信に使用するJMSセッションのファクトリ
protected  String subscriptionName
          JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名
protected  long timeout
          JMSメッセージを受信するまで待機する時間 (ミリ秒単位)
 
コンストラクタの概要
MessageReceiverImpl()
          インスタンスを構築します。
 
メソッドの概要
protected  MessageConsumer createMessageConsumer(Session session)
          プロパティの設定に基づいてMessageConsumerを作成して返します。
 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を受信してペイロード(メッセージボディ)を文字列として返します。
 void setDestinationFactory(DestinationFactory destinationFactory)
          受信に使用するJMSデスティネーションのファクトリを設定します(必須)。
 MessageReceiver setDurable(boolean durable)
          JMSメッセージをデュラブル(継続的)に受信する場合はtrueに設定します。
 MessageReceiver setMessageSelector(String messageSelector)
          受信するJMSメッセージを選択するためのメッセージセレクタを指定します。
 MessageReceiver setNoLocal(boolean noLocal)
          受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrueに設定します。
 void setSessionFactory(SessionFactory sessionFactory)
          受信に使用するJMSセッションのファクトリを設定します(必須)。
 MessageReceiver setSubscriptionName(String subscriptionName)
          JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名を設定します。
 MessageReceiver setTimeout(long timeout)
          JMSメッセージを受信するまで待機する時間をミリ秒単位で設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

sessionFactory

protected SessionFactory sessionFactory
受信に使用するJMSセッションのファクトリ


destinationFactory

protected DestinationFactory destinationFactory
受信に使用するJMSデスティネーションのファクトリ


durable

protected boolean durable
JMSメッセージをデュラブル(継続的)に受信する場合はtrue


subscriptionName

protected String subscriptionName
JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名


messageSelector

protected String messageSelector
受信するJMSメッセージを選択するためのメッセージセレクタ


noLocal

protected boolean noLocal
受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrue


timeout

protected long timeout
JMSメッセージを受信するまで待機する時間 (ミリ秒単位)


message

protected Message message
JMSメッセージ

コンストラクタの詳細

MessageReceiverImpl

public MessageReceiverImpl()
インスタンスを構築します。

メソッドの詳細

setSessionFactory

public void setSessionFactory(SessionFactory sessionFactory)
受信に使用するJMSセッションのファクトリを設定します(必須)。

パラメータ:
sessionFactory - JMSセッションファクトリ

setDestinationFactory

public void setDestinationFactory(DestinationFactory destinationFactory)
受信に使用するJMSデスティネーションのファクトリを設定します(必須)。

パラメータ:
destinationFactory - JMSデスティネーションファクトリ

setTimeout

public MessageReceiver setTimeout(long timeout)
インタフェース MessageReceiver の記述:
JMSメッセージを受信するまで待機する時間をミリ秒単位で設定します。

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

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

setMessageSelector

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

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

setNoLocal

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

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

setDurable

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

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

setSubscriptionName

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

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

receiveBytes

public byte[] receiveBytes()
インタフェース MessageReceiver の記述:
JMSのBytesMessageを受信してペイロード(メッセージボディ)をバイト配列として返します。

定義:
インタフェース MessageReceiver 内の receiveBytes
戻り値:
受信したBytesMessageのペイロードです。タイムアウトとした場合はnullを返します。

receiveText

public String receiveText()
インタフェース MessageReceiver の記述:
JMSのTextMessageを受信してペイロード(メッセージボディ)を文字列として返します。

定義:
インタフェース MessageReceiver 内の receiveText
戻り値:
受信したTextMessageのペイロードです。タイムアウトとした場合はnullを返します。

receiveObject

public Serializable receiveObject()
インタフェース MessageReceiver の記述:
JMSのObjectMessageを受信してペイロード(メッセージボディ)をSerializableオブジェクトとして返します。

定義:
インタフェース MessageReceiver 内の receiveObject
戻り値:
受信したObjectMessageのペイロードです。タイムアウトとした場合はnullを返します。

receiveMap

public Map<String,Object> receiveMap()
インタフェース MessageReceiver の記述:
JMSのMapMessageを受信してペイロード(メッセージボディ)をMapとして返します。

定義:
インタフェース MessageReceiver 内の receiveMap
戻り値:
受信したMapMessageのペイロードです。タイムアウトとした場合はnullを返します。

receive

public <MSGTYPE extends Message,T> T receive(MessageHandler<MSGTYPE,T> messageHandler)
インタフェース MessageReceiver の記述:
JMSメッセージを受信してMessageHandlerが処理した結果を返します。

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

receive

public Message receive()
インタフェース MessageReceiver の記述:
JMSメッセージを受信してそのまま返します。

定義:
インタフェース MessageReceiver 内の receive
戻り値:
受信したJMSメッセージです。タイムアウトとした場合はnullを返します。

getMessage

public Message getMessage()
インタフェース MessageReceiver の記述:
受信したJMSメッセージを返します。

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

定義:
インタフェース MessageReceiver 内の getMessage
戻り値:
受信したJMSメッセージ

getMessageID

public String getMessageID()
インタフェース MessageReceiver の記述:
JMSメッセージのmessageID ヘッダの値を返します。

定義:
インタフェース MessageReceiver 内の getMessageID
戻り値:
JMSメッセージのmessageIDヘッダの値

getTimestamp

public long getTimestamp()
インタフェース MessageReceiver の記述:
JMSメッセージのtimestamp ヘッダの値を返します。

定義:
インタフェース MessageReceiver 内の getTimestamp
戻り値:
JMSメッセージのtimestampヘッダの値

getExpiration

public long getExpiration()
インタフェース MessageReceiver の記述:
JMSメッセージのexpiration ヘッダの値を返します。

定義:
インタフェース MessageReceiver 内の getExpiration
戻り値:
JMSメッセージのexpirationヘッダの値

createMessageConsumer

protected MessageConsumer createMessageConsumer(Session session)
                                         throws JMSException
プロパティの設定に基づいてMessageConsumerを作成して返します。

パラメータ:
session - JMSセッション
戻り値:
プロパティの設定に基づいて作成したMessageConsumer
例外:
IllegalStateException - durableプロパティがtrueに設定されている場合で、 JMSデスティネーションがトピックでないかサブスクリプション名が設定されていない場合にスローされます。
JMSException - JMS実装からスローされた例外をそのままスローします


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