我创建了一个带有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 ?
}
}
谢谢你的帮助。
答案 0 :(得分:1)
您需要启动Spring应用程序上下文,例如实例化ClassPathXmlApplicationContext。见http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-instantiation