初めて 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 を使用するにはどうすればよいですか? 私は最初から完全に間違っていますか?
よろしくお願いします/マグナス