[Seasar-user:19938] Re: [Seasar2.4]MessageDrivenBeanからの利用は可能でしょうか?

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 7月 1日 (木) 18:30:25 JST


小林 (koichik) です.

Date:    Thu, 1 Jul 2010 17:35:24 +0900
From:    浅野護 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:19937] [Seasar2.4]MessageDrivenBeanからの利用は可能でしょうか?

> 上記ページのアノテーションを見ると、MessageDrivenBeanがありませんが、やはり対応していないということでしょうか。

していません.

(JMS 限定の) MDB 的な機能は S2JMS 
(の S2JMS-Container) で提供しています.

http://s2jms.seasar.org/ja/
http://s2jms.seasar.org/ja/container.html

でも JBossAS5 を使うなら MDB を使う方が
いいかもしれませんね.

Web 側からメッセージを送信する場合には
S2JMS-Core を使うことが出来ます.

http://s2jms.seasar.org/ja/core.html

> 1.JMS受信しMDB起動される側でs2jdbcを利用したい。
> SAStruts + Seasar2.4のWebアプリからJMSにメッセージ送信し、受信側のMDBでs2jdbcを利用したい。
> (出来ればWebアプリ側とServiceクラスを共通で利用したい)

例えばこんなクラスを作って...

public class S2ContainerProvider {
  private static S2Container container;

  public static synchronized getContainer() {
    if (container == null) {
      SingletonS2ContainerFactory.init();
      container = SingletonS2ContainerFactory.getContainer();
    }
    return container;
  }
}

MDB の @PostConstruct なメソッドで

@MessageDriven
public class Xxx implements MessageListener {
  private S2Container container;

  @PostConstruct
  public void init() {
    container = S2ContainerProvider.getContainer();
  }
  ...
}

とかすればよいかと.

> 2.S2EJBUnitを利用したい。
> 「フロント(JMS送信)→MDB起動(非同期処理)」 がテスト出来るかと期待しているのですが、可能でしょうか。

S2EJBUnit というのはありませんが,S2Unit や
S2JUnit4 と S2JMS (Core) を使ってメッセージ
送信はできるはずです.

S2JMS で JBoss (Messaging) を使う場合の
設定例は以下を参照してください.

http://s2jms.seasar.org/ja/config-jboss.html


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内