[Seasar-dev:278] Re: [S2JMS] MessageBinder について
Koichi Kobayashi
koichik
2006年 2月 21日 (火) 02:00:43 JST
小林 (koichik) です.
Date: Tue, 21 Feb 2006 01:13:36 +0900
From: KOMORI Yusuke <y-komori @ nifty.ne.jp>
To: seasar-dev @ lists.sourceforge.jp
Subject: [Seasar-dev:277] [S2JMS] MessageBinder について
> > ・TextMessageBinder 他
> >
> > メッセージの型が合わない場合にスルリと抜けていますが,
> > これも例外を吹っ飛ばす方向で.
> > たぶんその辺は「後で (ry」なだけだと思いますが.
>
> すみません。こちら修正 & コミットしました。
ありがとうございます.
なのですが,ここで飛ばした例外が JmsContainerImpl で
キャッチされません...
例外は JmsContainerImpl#onMessage() で全部キャッチするように
してください (そこが境界線なので).
逆に,それ以外のところでは基本的に例外はスルーで.
# checked 例外から unchecked 例外への変換とかはよいです.
> > ・MapMessageBinder
>
> そうですね・・と思ってAPIを調べたのですが、なぜかMapMessageからMapオブ
> ジェクトを取り出すインターフェースがないのです。
自分で詰め替えが必要ですね.
> Mapに格納された値の名称はEnumerationで取れますが、型を調べる手段がない
> ので元のMapを完全に再現する方法が無いようです。
全部 getObject(String) で取って大丈夫です.
その他の getXxxx(String) は型変換するだけということになってるので.
org.seasar.jms.core.message.impl.MapMessageHandler#getPayload() を
参考にしてください.
> > ・フィールドマッピング
>
> すみません、フィールドインジェクションは導入したいんですが、仕組みがま
> だわかってません・・・
> S2Container の AbstractBindingTypeDef まわりのソースを見てますが、
> private 属性のフィールドにどうやって値をセットしてるんでしょう??
java.lang.reflect.AccessibleObject 要チェック
フィールドインジェクションはちょうど S2 でひがさんが
手を入れているようなので,そちらが落ち着いてから対応してもいいかと.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>koichik @ improvement.jp</e-mail>
</signature>
seasar-dev メーリングリストの案内