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

标签 java tomcat jakarta-ee jndi activemq-artemis

我想在 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/

相关文章:

java - 有什么方法可以在 HQL 中执行此查询吗?

java - 在Windows的tomcat服务器上托管的Java程序中显示Unicode字符

java - 在 Java App 和 Web App 之间共享实例

java - 处理 hibernate 事务

java - 不要在 servlet 中硬编码 jsp 链接

java - Jboss服务器异常

java - 如何使用 JTextFields 中的 If 语句

java - 使用哪种设计模式(我需要类似中介模式的东西)?

java - 在 Java 中使用 toString 打印 Long 值

apache - 从 URL 中删除应用程序名称和 servlet 映射