`
linliangyi2007
  • 浏览: 1003564 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

ActiveMQ 5.X 与 Tomcat 集成一(JNDI部署)

阅读更多
原文地址:http://activemq.apache.org/setting-up-activemq-with-tomcat-559.html

生成文件 <webapp-root>/META-INF/context.xml. 以下是样例:
<Context antiJARLocking="true">
    <Resource
        name="jms/ConnectionFactory"
        auth="Container"
        type="org.apache.activemq.ActiveMQConnectionFactory"
        description="JMS Connection Factory"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
        brokerURL="tcp://localhost:61616"
        brokerName="LocalActiveMQBroker"
        useEmbeddedBroker="false"/>

    <Resource name="jms/topic/MyTopic"
        auth="Container"
        type="org.apache.activemq.command.ActiveMQTopic"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
        physicalName="MY.TEST.FOO"/>
    <Resource name="jms/queue/MyQueue"
        auth="Container"
        type="org.apache.activemq.command.ActiveMQQueue"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
        physicalName="MY.TEST.FOO.QUEUE"/>
</Context>

上面的配置,在Tomcat内产生了一个JMS的ConectionFactory 和Topic 的JNDI上下文。

下面是一段Java样例代码,它像一个名为MY.TEST.FOO 的主题发布一段文本信息:
try {
    InitialContext initCtx = new InitialContext();
    Context envContext = (Context) initCtx.lookup("java:comp/env");
    ConnectionFactory connectionFactory = (ConnectionFactory) envContext.lookup("jms/ConnectionFactory");
    Connection connection = connectionFactory.createConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageProducer producer = session.createProducer((Destination) envContext.lookup("jms/topic/MyTopic"));

    Message testMessage = session.createMessage();
    testMessage.setStringProperty("testKey", "testValue");
    producer.send(testMessage);
} catch (NamingException e) {
    // TODO handle exception
} catch (JMSException e) {
    // TODO handle exception
}


1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics