[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 メーリングリストの案内