我第一次尝试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? 我从一开始就完全错了吗?
友好的问候/马格努斯