|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.seasar.jms.core.impl.MessageReceiverImpl
public class MessageReceiverImpl
JMSメッセージを受信するコンポーネントの実装クラスです。
受信したメッセージを容易に処理するために次のメソッドを使用することができます。
これらのメソッドは受信したJMS標準メッセージ型のペイロードを戻り値として返します。受信したJMSメッセージを独自に処理するには次のメソッドを使用することができます。
引数で指定するMessageHandlerにより自由にJMSメッセージを処理することができます。
このメソッドはMessageHandler.handleMessage(MSGTYPE)の戻り値をそのまま返します。
受信したJMSメッセージをそのまま取得するには次のメソッドを使用することができます。
いずれの場合もタイムアウトした場合はnullを返します。
受信したメッセージはgetMessage()メソッドで取得することもできます.
受信したメッセージのJMSヘッダを以下のメソッドで取得することができます.
このコンポーネントはインスタンスモードPROTOTYPEで使われることを想定しており、スレッドセーフではありません。
| 入れ子のクラスの概要 | |
|---|---|
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メッセージを受信してそのまま返します。 |
|
|
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 |
| フィールドの詳細 |
|---|
protected SessionFactory sessionFactory
protected DestinationFactory destinationFactory
protected boolean durable
true
protected String subscriptionName
protected String messageSelector
protected boolean noLocal
true
protected long timeout
protected Message message
| コンストラクタの詳細 |
|---|
public MessageReceiverImpl()
| メソッドの詳細 |
|---|
public void setSessionFactory(SessionFactory sessionFactory)
sessionFactory - JMSセッションファクトリpublic void setDestinationFactory(DestinationFactory destinationFactory)
destinationFactory - JMSデスティネーションファクトリpublic MessageReceiver setTimeout(long timeout)
MessageReceiver の記述:
timeout < 0 の場合はJMSメッセージを受信するまで無制限に待機します。デフォルトです。
timeout > 0 場合はその時間だけ待機します。
timeout == 0 の場合は待機しません。
MessageReceiver 内の setTimeouttimeout - JMSメッセージを受信するまで待機する時間 (ミリ秒単位)
public MessageReceiver setMessageSelector(String messageSelector)
MessageReceiver の記述: Messageを参照してください。
MessageReceiver 内の setMessageSelectormessageSelector - 受信するJMSメッセージを選択するためのメッセージセレクタ
public MessageReceiver setNoLocal(boolean noLocal)
MessageReceiver の記述: trueに設定します。 デフォルトはfalseです。
JMSデスティネーションがトピックの場合にのみ有効です。
MessageReceiver 内の setNoLocalnoLocal - 受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrue、それ以外の場合はfalse
public MessageReceiver setDurable(boolean durable)
MessageReceiver の記述: trueに設定します。デフォルトはfalseです。
JMSデスティネーションがトピックの場合にのみ有効です。
MessageReceiver 内の setDurabledurable - JMSメッセージをデュラブル(継続的)に受信する場合はtrue、それ以外の場合はfalse
public MessageReceiver setSubscriptionName(String subscriptionName)
MessageReceiver の記述:
MessageReceiver 内の setSubscriptionNamesubscriptionName - JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名
public byte[] receiveBytes()
MessageReceiver の記述: BytesMessageを受信してペイロード(メッセージボディ)をバイト配列として返します。
MessageReceiver 内の receiveBytesBytesMessageのペイロードです。タイムアウトとした場合はnullを返します。public String receiveText()
MessageReceiver の記述: TextMessageを受信してペイロード(メッセージボディ)を文字列として返します。
MessageReceiver 内の receiveTextTextMessageのペイロードです。タイムアウトとした場合はnullを返します。public Serializable receiveObject()
MessageReceiver の記述: ObjectMessageを受信してペイロード(メッセージボディ)をSerializableオブジェクトとして返します。
MessageReceiver 内の receiveObjectObjectMessageのペイロードです。タイムアウトとした場合はnullを返します。public Map<String,Object> receiveMap()
MessageReceiver の記述: MapMessageを受信してペイロード(メッセージボディ)をMapとして返します。
MessageReceiver 内の receiveMapMapMessageのペイロードです。タイムアウトとした場合はnullを返します。public <MSGTYPE extends Message,T> T receive(MessageHandler<MSGTYPE,T> messageHandler)
MessageReceiver の記述: MessageHandlerが処理した結果を返します。
MessageReceiver 内の receiveMSGTYPE - JMSメッセージの型T - JMSメッセージを処理した結果の型messageHandler - 受信したメッセージを処理するMessageHandler
MessageHandlerが処理した結果です。タイムアウトとした場合はnullを返します。public Message receive()
MessageReceiver の記述:
MessageReceiver 内の receivenullを返します。public Message getMessage()
MessageReceiver の記述:
JMSメッセージを受信していない場合はnullを返します.
MessageReceiver 内の getMessagepublic String getMessageID()
MessageReceiver の記述: messageID ヘッダの値を返します。
MessageReceiver 内の getMessageIDmessageIDヘッダの値public long getTimestamp()
MessageReceiver の記述: timestamp ヘッダの値を返します。
MessageReceiver 内の getTimestamptimestampヘッダの値public long getExpiration()
MessageReceiver の記述: expiration
ヘッダの値を返します。
MessageReceiver 内の getExpirationexpirationヘッダの値
protected MessageConsumer createMessageConsumer(Session session)
throws JMSException
MessageConsumerを作成して返します。
session - JMSセッション
MessageConsumer
IllegalStateException - durableプロパティがtrueに設定されている場合で、
JMSデスティネーションがトピックでないかサブスクリプション名が設定されていない場合にスローされます。
JMSException - JMS実装からスローされた例外をそのままスローします
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||