|
原文地址: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
} |
|
|
|
|
|
|