我想在 tomcat server.xml 中将 jms ConnectionFactory 定义为全局资源,以将我的 web 应用程序连接到独立的 Artemis 服务器。
不幸的是,我找不到任何官方或干净的手册来描述这种常见的用例所需的库和配置。
有人可以给我举个例子吗?
我找不到任何基于 Artemis 的本地解决方案。 Artemis 服务器与 ActiveMQ 客户端兼容。因此我们可以按照 ActiveMQ 手册来实现此目的。
将 ActiveMQ 客户端库添加到 $CATALINA_HOME/lib
将全局资源添加到$CATALINA_HOME/conf/server.xml
<Resource auth="Container"
name="jms/ConnectionFactory"
type="org.apache.activemq.ActiveMQConnectionFactory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://127.0.0.1:61616"
brokerName="MyActiveMQBroker"/>
将资源链接添加到$CATALINA_HOME/conf/context.xml
<ResourceLink name="/ConnectionFactory"
global="jms/ConnectionFactory"
type="javax.jms.ConnectionFactory"/>
在应用程序上下文中查找连接工厂
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/ConnectionFactory" />
<property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>