Spring JMS Consumer Application

时间:2015-02-13 13:31:02

标签: java spring spring-jms

我创建了一个带有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 ?
  }
}

谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您需要启动Spring应用程序上下文,例如实例化ClassPathXmlApplicationContext。见http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-instantiation