3

初めて Apache Tomee (1.5 plus) を試していますが、現時点では完全に行き詰っています。

私が働いている会社には、メッセージを JMS トピック topic/theTopicsName に送信するアプリケーション (JBoss と HornetQ を使用) があります。

上記のトピックをサブスクライブする Tomee/ActiveMQ を使用して別のサービスを実装しようとしていますが、通常は別のコンピューターから MDB 内のメッセージを処理しますが、localhost 以外をリッスンすることはできません。

私が正しく理解していれば、次のようなものを追加できるはずです

<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
    BrokerXmlConfig =
    ServerUrl       =  tcp://thehostname:5455
</Resource>

<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
    ResourceAdapter = MyJmsResourceAdapter
</Resource>

私の /conf/tomee.xml で

質問は、MDB で上記の設定を使用するにはどうすればよいですか? アノテーションまたは ejb-jar.xml を介して可能ですか?

単純な MDB があるとします

public class MessageListenerMDB implements MessageListener {

    private ConnectionFactory connectionFactory;

    public MessageListenerMDB() {}

    public void onMessage(Message message) {
        //print message
    }
}

そして、私の */WEB_INF/ejb-jar.xml は次のようになります

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" metadata-complete="true">
  <enterprise-beans>
    <message-driven>
      <ejb-name>MessageListenerMDB</ejb-name>
      <ejb-class>my.package.jms.MessageListenerMDB</ejb-class>
      <messaging-type>javax.jms.MessageListener</messaging-type>
      <activation-config>
        <activation-config-property>
          <activation-config-property-name>
            destinationType
          </activation-config-property-name>
          <activation-config-property-value>
            javax.jms.Topic
          </activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>
            destination
          </activation-config-property-name>
          <activation-config-property-value>
            /topic/theTopicsName
          </activation-config-property-value>
        </activation-config-property>
      </activation-config>

      <resource-ref>
        <res-ref-name>
          java:comp/env/my.package.jms.MessageListenerMDB/connectionFactory
        </res-ref-name>
        <res-type>javax.jms.ConnectionFactory</res-type>
        <injection-target>
          <injection-target-class>
            my.package.jms.MessageListenerMDB
          </injection-target-class>
        <injection-target-name>connectionFactory</injection-target-name>
      </injection-target>
    </resource-ref>

    </message-driven>
  </enterprise-beans>
</ejb-jar>

上記の ConnectionFactory を使用するにはどうすればよいですか? 私は最初から完全に間違っていますか?

よろしくお願いします/マグナス

4

0 に答える 0