MDB订阅Apache Tomee中的远程jms主题

时间:2012-12-05 16:52:29

标签: jms apache-tomee

我第一次尝试Apache Tomee(1.5 plus)而且我现在完全陷入困境。

我工作的公司有一个应用程序(使用JBoss和HornetQ),它将消息发送到JMS主题,主题/ theTopicsName。

我正在尝试使用订阅所述主题的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? 我从一开始就完全错了吗?

友好的问候/马格努斯

0 个答案:

没有答案