S2JMS開発記 - メッセージをrequest属性で登録

JMSContainerですが、以下のところまで実現できたのでコミットしました。

  1. 受信したメッセージをrequest属性でコンテナに登録
  2. MessageListenerをメッセージ受信のたびにコンテナから取得(このタイミングでメッセージを含むrequest属性のコンポーネントがインジェクションされる)

これにともない、JMSContainerの使い方がちょっとだけ変わります。

従来は addMessageListener でコンポーネントを直接渡していたのですが、''コンポーネント名''を渡すように変更になりました。

さらに、MessageListener は request属性のコンポーネントをインジェクションするので、prototype属性で登録することが前提となります。

  <component class="org.seasar.jms.container.impl.JMSContainerImpl">
    <initMethod name="addMessageListener">
      <arg>"listener"</arg>
    </initMethod>
  </component>
  
  <component name="listener" class="sample.MessageListener" instance="prototype" />