|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.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
内の setTimeout
timeout
- JMSメッセージを受信するまで待機する時間 (ミリ秒単位)
public MessageReceiver setMessageSelector(String messageSelector)
MessageReceiver
の記述: Message
を参照してください。
MessageReceiver
内の setMessageSelector
messageSelector
- 受信するJMSメッセージを選択するためのメッセージセレクタ
public MessageReceiver setNoLocal(boolean noLocal)
MessageReceiver
の記述: true
に設定します。 デフォルトはfalse
です。
JMSデスティネーションがトピックの場合にのみ有効です。
MessageReceiver
内の setNoLocal
noLocal
- 受信するJMSコネクションから送信されたJMSメッセージを受信しない場合はtrue
、それ以外の場合はfalse
public MessageReceiver setDurable(boolean durable)
MessageReceiver
の記述: true
に設定します。デフォルトはfalse
です。
JMSデスティネーションがトピックの場合にのみ有効です。
MessageReceiver
内の setDurable
durable
- JMSメッセージをデュラブル(継続的)に受信する場合はtrue
、それ以外の場合はfalse
public MessageReceiver setSubscriptionName(String subscriptionName)
MessageReceiver
の記述:
MessageReceiver
内の setSubscriptionName
subscriptionName
- JMSメッセージをデュラブル(継続的)に受信する場合のサブスクリプション名
public byte[] receiveBytes()
MessageReceiver
の記述: BytesMessage
を受信してペイロード(メッセージボディ)をバイト配列として返します。
MessageReceiver
内の receiveBytes
BytesMessage
のペイロードです。タイムアウトとした場合はnull
を返します。public String receiveText()
MessageReceiver
の記述: TextMessage
を受信してペイロード(メッセージボディ)を文字列として返します。
MessageReceiver
内の receiveText
TextMessage
のペイロードです。タイムアウトとした場合はnull
を返します。public Serializable receiveObject()
MessageReceiver
の記述: ObjectMessage
を受信してペイロード(メッセージボディ)をSerializable
オブジェクトとして返します。
MessageReceiver
内の receiveObject
ObjectMessage
のペイロードです。タイムアウトとした場合はnull
を返します。public Map<String,Object> receiveMap()
MessageReceiver
の記述: MapMessage
を受信してペイロード(メッセージボディ)をMap
として返します。
MessageReceiver
内の receiveMap
MapMessage
のペイロードです。タイムアウトとした場合はnull
を返します。public <MSGTYPE extends Message,T> T receive(MessageHandler<MSGTYPE,T> messageHandler)
MessageReceiver
の記述: MessageHandler
が処理した結果を返します。
MessageReceiver
内の receive
MSGTYPE
- JMSメッセージの型T
- JMSメッセージを処理した結果の型messageHandler
- 受信したメッセージを処理するMessageHandler
MessageHandler
が処理した結果です。タイムアウトとした場合はnull
を返します。public Message receive()
MessageReceiver
の記述:
MessageReceiver
内の receive
null
を返します。public Message getMessage()
MessageReceiver
の記述:
JMSメッセージを受信していない場合はnull
を返します.
MessageReceiver
内の getMessage
public String getMessageID()
MessageReceiver
の記述: messageID
ヘッダの値を返します。
MessageReceiver
内の getMessageID
messageID
ヘッダの値public long getTimestamp()
MessageReceiver
の記述: timestamp
ヘッダの値を返します。
MessageReceiver
内の getTimestamp
timestamp
ヘッダの値public long getExpiration()
MessageReceiver
の記述: expiration
ヘッダの値を返します。
MessageReceiver
内の getExpiration
expiration
ヘッダの値protected MessageConsumer createMessageConsumer(Session session) throws JMSException
MessageConsumer
を作成して返します。
session
- JMSセッション
MessageConsumer
IllegalStateException
- durable
プロパティがtrue
に設定されている場合で、
JMSデスティネーションがトピックでないかサブスクリプション名が設定されていない場合にスローされます。
JMSException
- JMS実装からスローされた例外をそのままスローします
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |