【发布时间】:2015-02-13 13:31:02
【问题描述】:
我创建了一个带有 Apache ActiveMQ 的 JMS 代理和一个可以将消息排入队列的简单应用程序。
我想创建另一个简单的应用程序,使用 MDP 将这些消息异步出列。这是我到目前为止的一个例子:
消费者 POJO
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import org.apache.log4j.Logger;
public class MyMessageListener implements MessageListener {
private static final Logger LOG = Logger.getLogger(MyMessageListener.class);
public void onMessage(Message message) {
try {
TextMessage msg = (TextMessage) message;
LOG.info("Consumed message: " + msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
这是我的 Spring XML 配置文件的相关部分
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory"
p:brokerURL="tcp://localhost:61616 />
</bean>
<bean id="simpleMessageListener"
class="main.SimpleMessageListener">
<jms:listener-container
container-type="default"
connection-factory="connectionFactory"
acknowledge="auto">
<jms:listener destination="testqueue"
ref="simpleMessageListener" method="onMessage" />
</jms:listener-container>
现在大概我需要一个 main 方法,但是当消息到达队列时,监听器会异步调用 onMessage 方法,我不知道如何编写代码:
public class App {
public static void main( String[] args ) {
// what do I need here?
//MyMessageListener msglistener ?
}
}
感谢您的帮助。
【问题讨论】:
标签: java spring spring-jms