通过JNDI将Tomcat连接到独立的Artemis Broker

时间:2017-01-25 08:09:57

标签: java tomcat java-ee jndi activemq-artemis

我想在tomcat server.xml中将jms ConnectionFactory定义为全局资源,以将我的webapps连接到独立的Artemis服务器。

遗憾的是,我找不到任何官方或干净的手册来说明描述所需库和配置的常见用例。

有人能告诉我一个例子吗?

1 个答案:

答案 0 :(得分:1)

我找不到任何原生的基于Artemis的解决方案。 Artemis服务器与ActiveMQ客户端兼容。因此,我们可以为此目的使用ActiveMQ手册。

  • 将ActiveMQ客户端库添加到$ CATALINA_HOME / lib

    • 的geronimo-jms_2.0_spec-1.0-α-2.jar
    • ActiveMQ的客户端 - 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>