Spring JMS 消费者应用程序
Spring JMS Consumer Application
我已经使用 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 ?
}
}
感谢您的帮助。
您需要启动 Spring 应用程序上下文,例如实例化一个 ClassPathXmlApplicationContext。参见 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-instantiation
我已经使用 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 ?
}
}
感谢您的帮助。
您需要启动 Spring 应用程序上下文,例如实例化一个 ClassPathXmlApplicationContext。参见 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-instantiation