|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.seasar.jms.core.interceptor.AbstractSendMessageInterceptor org.seasar.jms.core.interceptor.SendReturnValueInterceptor
public class SendReturnValueInterceptor
ターゲットメソッドの戻り値をJMSメッセージとして送信するインターセプタです。
ターゲットメソッドが例外をスローすることなく終了した場合、MessageSender
を使用してJMSメッセージを送信します。
送信するJMSメッセージはaddMessageFactory(java.lang.Class>, java.lang.Class extends org.seasar.jms.core.message.MessageFactory extends javax.jms.Message>>)
によって登録されたMessageFactory
によって作成されます。
MessageFactory
はターゲットメソッドの戻り値型に対応付けることができます。 デフォルトでは次のMessageFactory
が登録されています。
戻り値の型 | MessageFactory の実装クラス |
---|---|
String |
TextMessageFactory |
byte[] |
BytesMessageFactory |
Map |
MapMessageFactory |
Serializable |
ObjectMessageFactory |
どのMessageFactory
が使用されるかは登録される順序に依存します。
ターゲットメソッドの戻り値を代入可能な戻り値型に対応付けられているMessageFactory
を
登録順に探し、最初に見つかったものが選択されます。
デフォルトで登録されているマッピングの場合、ターゲットメソッドがString
を返すと
TextMessageFactory
とObjectMessageFactory
のどちらでもJMSメッセージを作成できますが、
先に登録されているTextMessageFactory
が選択されます。
フィールドの概要 | |
---|---|
protected Map<Class<?>,Class<? extends MessageFactory<? extends Message>>> |
factories
MessageFactory のMap |
クラス org.seasar.jms.core.interceptor.AbstractSendMessageInterceptor から継承されたフィールド |
---|
componentDef, container, messageSenderName |
コンストラクタの概要 | |
---|---|
SendReturnValueInterceptor()
インスタンスを構築します。 |
メソッドの概要 | |
---|---|
void |
addMessageFactory(Class<?> returnType,
Class<? extends MessageFactory<? extends Message>> messageFactoryClass)
ターゲットメソッドの戻り値型に対応するJMSメッセージのファクトリのクラスを追加します。 |
void |
clearFactories()
登録されている MessageFactory をクリアします。 |
protected MessageFactory<?> |
createMessageFactory(Object returnValue)
ターゲットメソッドの戻り値型に対応する MessageFactory を作成して返します。 |
Object |
invoke(MethodInvocation invocation)
ターゲットメソッドが例外をスローすることなく終了した後にJMSメッセージを送信します。 |
クラス org.seasar.jms.core.interceptor.AbstractSendMessageInterceptor から継承されたメソッド |
---|
getMessageSender, initialize, proceed, setContainer, setMessageSenderName |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected Map<Class<?>,Class<? extends MessageFactory<? extends Message>>> factories
MessageFactory
のMap
コンストラクタの詳細 |
---|
public SendReturnValueInterceptor()
メソッドの詳細 |
---|
public void clearFactories()
MessageFactory
をクリアします。
public void addMessageFactory(Class<?> returnType, Class<? extends MessageFactory<? extends Message>> messageFactoryClass)
returnType
- ターゲットメソッドの戻り値型messageFactoryClass
- 戻り値型に対応したJMSメッセージのファクトリpublic Object invoke(MethodInvocation invocation) throws Throwable
invocation
- ターゲットメソッドの呼び出しを表現するオブジェクト
Throwable
- ターゲットメソッドの実行時あるいはJMSメッセージの送信時に例外が発生した場合にスローされますprotected MessageFactory<?> createMessageFactory(Object returnValue)
MessageFactory
を作成して返します。
ターゲットメソッドの戻り値を代入可能な戻り値型に対応付けられているMessageFactory
を
登録順に探し、最初に見つかったMessageFactory
をインスタンス化します。
returnValue
- ターゲットメソッドの戻り値
MessageFactory
SIllegalStateException
- ターゲットメソッドの戻り値型に対応するMessageFactory
が見つからない場合にスローされます
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |