我想在 tomcat server.xml 中将 jms ConnectionFactory 定义为全局资源,以将我的 Web 应用程序连接到独立的 Artemis 服务器。
不幸的是,对于描述所需库和配置的这种常见用例,我找不到任何官方或干净的手册。
谁能给我举个例子?
最佳答案
我找不到任何基于 Artemis 的本地解决方案。 Artemis 服务器与 ActiveMQ 客户端兼容。因此,我们可以为此目的遵循 ActiveMQ 手册。
将 ActiveMQ 客户端库添加到 $CATALINA_HOME/lib
- geronimo-jms_2.0_spec-1.0-alpha-2.jar
- activemq-client-5.14.3.jar
- geronimo-j2ee-management_1.1_spec-1.0.1.jar
- hawtbuf-1.11.jar
- slf4j-api-1.7.6.jar
将全局资源添加到$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>
关于java - 通过 JNDI 将 Tomcat 连接到独立的 Artemis Broker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846374/