博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring集成activemq
阅读量:6943 次
发布时间:2019-06-27

本文共 6412 字,大约阅读时间需要 21 分钟。

hot3.png

两个项目,一个生产者一个消费者,这里只贴出关键代码(队列模式和订阅模式),文章最后会附上项目地址,有需要的可以自行下载。项目访问地址

生产者

tcp://127.0.0.1:61616
                  
      
          
          
        
          
          
          
          
  

queues.java

public class QueueSender {	private Destination destination;	private JmsTemplate jmsTemplate;	public QueueSender(ActiveMQQueue queue) {		this.destination = queue;	}	public void send(final String message) throws JMSException {		jmsTemplate.send(destination, new MessageCreator() {			public Message createMessage(Session session) throws JMSException {				return session.createTextMessage(message);			}		});	}	public void setJmsTemplate(JmsTemplate jmsTemplate) {		this.jmsTemplate = jmsTemplate;	}}

Test.java

/** * Servlet implementation class Test */public class Test extends HttpServlet {	private static final long serialVersionUID = 1L;	private static final Logger LOGGER=Logger.getLogger(Test.class);    /**     * Default constructor.      */    public Test() {        // TODO Auto-generated constructor stub    }	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		doPost(request, response);	}	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());		JmsTemplate jmsTemplate=(JmsTemplate) ac1.getBean("jmsTemplate");		jmsTemplate.send(new MessageCreator() {						public Message createMessage(Session session) throws JMSException {				return session.createTextMessage("send a message~!");   			}		});		jmsTemplate.send("callcenter",new MessageCreator() {						public Message createMessage(Session session) throws JMSException {				return session.createTextMessage("send a message to callcenter~!");   			}		});		JmsTemplate topicjmsTemplate=(JmsTemplate) ac1.getBean("topicjmsTemplate");		topicjmsTemplate.send(new MessageCreator() {              public Message createMessage(Session session) throws JMSException {                  TextMessage msg = session.createTextMessage();                  msg.setStringProperty("phrCode", "C001");                  msg.setText("Hello World!");                  return msg;              }          });  	}}

消费者项目

tcp://127.0.0.1:61616
 
      
          
          
        
      
  
      
          
          
          
          
          
        
          
          
          
          
          
          
          
          
          
          
 

QueueReceiverListener.java

public class QueueReceiverListener implements SessionAwareMessageListener {	private static final Logger LOGGER = Logger.getLogger(QueueReceiverListener.class);	public void onMessage(Message message, Session session) throws JMSException {				TextMessage msg = (TextMessage) message;							try {					Thread.currentThread().sleep(5000);				} catch (InterruptedException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}	}}

SimpleJMSReceiver.java

public class SimpleJMSReceiver {	public void receive(TextMessage message) throws JmsException, JMSException {          System.out.println(message.getStringProperty("phrCode"));          System.out.println(message.getText());      } }

pom.xml两个项目都是一样的

UTF-8
junit
junit
4.10
test
org.springframework
spring-jms
3.1.0.RELEASE
org.springframework
spring-test
3.1.0.RELEASE
javax.annotation
jsr250-api
1.0
org.apache.activemq
activemq-core
5.7.0
org.apache.activemq
activemq-pool
5.9.0
org.springframework
spring-core
3.1.1.RELEASE
org.springframework
spring-beans
3.1.1.RELEASE
org.springframework
spring-context
3.1.1.RELEASE
log4j
log4j
1.2.17
org.springframework
spring-jdbc
3.1.1.RELEASE
org.springframework
spring-web
4.0.6.RELEASE

下面是输出信息:

17:18:39,725  INFO Test:45 - --------发送队列消息开始--------17:18:39,725 DEBUG DefaultListableBeanFactory:245 - Returning cached instance of singleton bean 'jmsTemplate'17:18:39,979 DEBUG JmsTemplate:464 - Executing callback on JMS Session: PooledSession { ActiveMQSess17:18:40,029  INFO QueueReceiverListener:16 - -------接收消息开始---------17:18:40,030 DEBUG QueueReceiverListener:20 - QueueReceiverListener接收到报文:send a message~!17:18:40,030 DEBUG QueueReceiverListener:22 - QueueReceiverListener接收到报文:send a message~!17:18:40,046 DEBUG JmsTemplate:567 - Sending created message: ActiveMQTextMessage {commandId = 0, re17:18:40,047  INFO Test:60 - -------发送队列消息结束---------17:18:40,047  INFO Test:61 - -------发送订阅消息开始---------17:18:40,047 DEBUG DefaultListableBeanFactory:245 - Returning cached instance of singleton bean 'topicjmsTemplate'17:18:40,057 DEBUG JmsTemplate:464 - Executing callback on JMS Session: PooledSession { ActiveMQSession {id=ID:shy-PC-55695-1440407919807-1:3:1,started=false} }17:18:40,058 DEBUG JmsTemplate:567 - Sending created message: ActiveMQTextMessage {commandId = 0, re17:18:40,059  INFO Test:73 - -------发送订阅消息结束---------17:18:40,061 DEBUG DefaultMessageListenerContainer:313 - Received message of type [class org.apache.C001Hello World!

项目下载地址:http://pan.baidu.com/s/1o6DvqrC

转载于:https://my.oschina.net/shyloveliyi/blog/496489

你可能感兴趣的文章
2013应届毕业生“PPS”校招应聘总结
查看>>
CentOS 7 启动VNC失败问题
查看>>
微软职位内部推荐-This Job is no longer available.
查看>>
abbyy在使用时提示更改分辨率如何处理
查看>>
vagrant教程
查看>>
什么是SMART原则?
查看>>
堆排序(java实现)
查看>>
调试K3网页版需要注意的问题
查看>>
左右手坐标系与旋转正向
查看>>
hdu 2177 取(2堆)石子游戏(威佐夫博奕)
查看>>
AndroidPn服务端部分bug解决方案
查看>>
LeetCode – Refresh – LRU
查看>>
201671030103 仇素龙 实验四软件工程结对项目
查看>>
[leetcode] Subsets II
查看>>
linux nginx搭配https
查看>>
spring boot jpa 使用update 报错解决办法
查看>>
解决微信浏览器video全屏的问题
查看>>
强化学习之Q-learning ^_^
查看>>
P3373 【模板】线段树 2
查看>>
初涉MySQL
查看>>