springMVC+activemq整合注解方式
来源:互联网 发布:淘宝哪些站外网站 编辑:程序博客网 时间:2024/05/16 13:51
前言:用了一次mq,由于xml配置+注解的方式出现类加载问题并且对spring类加载机制不是很熟悉,索性就改成注解方式来解决问题。
配置过程中,搜索了好久,各种配置失败,这里给出总结经验,勉励一下自己吧。
1.xml监听配置方式及测试程序,请参阅
http://www.cnblogs.com/leiOOlei/p/5075402.html
2.activemq注解监听配置如下
(1)请自行配置springmvc+maven环境(参看前几篇博客),下载activemq
(2)maven引入的包,在pom.xml文件引入。
注意:activemq-all用的5.8.0,同时测试了5.12.1和5.14.3版本,无法识别<jms:annotation-driven/>配置,不能实现注解。
这里困扰好久,望有成功者可以指点一二,感激不尽。
<dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>4.5</version> </dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.8.0</version> </dependency>
(3)activemq.xml文件配置
<?xml version="1.0" encoding="UTF-8"?><!-- 查找最新的schemaLocation 访问 http://www.springframework.org/schema/ --><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-4.1.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd"> <amq:connectionFactory id="jmsConnectionFactory" brokerURL="tcp://localhost:61616" userName="admin" password="admin" /> <bean id="jmsConnectionFactoryExtend" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="jmsConnectionFactory" /> <property name="sessionCacheSize" value="100" /> </bean> <!-- 消息处理器 --> <bean id="jmsMessageConverter" class="org.springframework.jms.support.converter.SimpleMessageConverter" /> <!-- ====Producer side start==== --> <!-- 定义JmsTemplate的Queue类型 --> <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="jmsConnectionFactoryExtend" /> <!-- 非pub/sub模型(发布/订阅),即队列模式 --> <property name="pubSubDomain" value="false" /> <property name="messageConverter" ref="jmsMessageConverter"></property> </bean> <!-- 定义JmsTemplate的Topic类型 --> <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg ref="jmsConnectionFactoryExtend" /> <!-- pub/sub模型(发布/订阅) --> <property name="pubSubDomain" value="true" /> <property name="messageConverter" ref="jmsMessageConverter"></property> </bean> <bean id="jmsListenerContainerFactory" class="org.springframework.jms.config.DefaultJmsListenerContainerFactory"> <property name="connectionFactory" ref="jmsConnectionFactoryExtend"/> </bean> <!-- 监听注解支持 --> <jms:annotation-driven /></beans>(4)监听消息测试代码,注意:类上面的两个注解,丢了无法启动监听
package com.cms.mmc.activemq;import java.util.List;import java.util.Map;import javax.annotation.Resource;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.TextMessage;import org.springframework.jms.annotation.EnableJms;import org.springframework.jms.annotation.JmsListener;import org.springframework.stereotype.Component;import com.cms.mmc.activemq.service.IServiceProducer;//spring配置监听队列中的消息@Component@EnableJmspublic class QueueMsgListener{ //当收到消息后,自动调用该方法,spring配置默认监听器,负责接收消息 @JmsListener(containerFactory="jmsListenerContainerFactory",destination = "mssactivemq") public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println(tm.getText()); } catch (JMSException e) { e.printStackTrace(); } }}(5)测试监听启动,启动tomcat,启动activemq,:\apache-activemq-5.14.3\bin\win64,双击activemq.bat,启动后
浏览器输入http://localhost:8161/admin,未修改密码情况,用户名密码admin admin。看到如下图片,number of consumers =1,
当向mssactivemq队列发送消息时,会在控制台打印该消息,发送消息程序请看(6),输出如下
{"code":"equipment","commKey":"send","pId":"00ec55041f7c4534a4b6740b9187cf5d","id":"222","items":"json对象","key":"222_00ec55041f7c4534a4b6740b9187cf5d"}
(6)发送消息测试代码如下
package com.cms.mmc.activemq;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;import org.springframework.jms.core.JmsTemplate;import com.alibaba.fastjson.JSONObject;//向mq发送2条数据public class M2Producer {public M2Producer(){} public static void main(String[] args) {ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");try {Connection connection = connectionFactory.createConnection();connection.start();Session session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);Destination destination = session.createQueue("mssactivemq");MessageProducer producer = session.createProducer(destination);JSONObject jsonObject = new JSONObject();jsonObject.put("commKey", "send");jsonObject.put("id", "222");jsonObject.put("pId", "00ec55041f7c4534a4b6740b9187cf5d");jsonObject.put("key", "222_00ec55041f7c4534a4b6740b9187cf5d");jsonObject.put("items", "json对象");jsonObject.put("code", "equipment");for (int i = 0; i < 1; i++) {System.out.println("send...messageAA --->" + jsonObject);TextMessage message = session.createTextMessage(jsonObject.toJSONString());// 通过生产者发出消息producer.send(message);}session.commit();session.close();connection.close();} catch (JMSException e) {e.printStackTrace();}}}
1 0
- springMVC+activemq整合注解方式
- springMVC+activemq整合注解方式
- SpringMVC+MyBatis整合(注解方式)
- spring+springmvc+ibatis整合注解方式实例
- spring+springmvc+ibatis整合注解方式实例。
- SpringMVC整合ActiveMQ
- spring+springmvc+ibatis整合注解方式实例(附带数据库)
- spring+springmvc+ibatis整合注解方式实例(附带数据库)
- spring+springmvc+ibatis整合注解方式实例(附带数据库)
- springmvc+spring+hibernate 整合 annotation(全注解)方式
- maven整合springmvc-Spring-ActiveMQ
- SpringMVC+Mybatis整合注解
- SpringMVC+Mybatis整合注解
- SpringMVC—注解方式
- SpringMVC注解方式
- springmvc注解方式访问
- springmvc注解方式
- SpringMVC 注解方式
- flume的概念和基本使用
- 手机上运行酷欧天气,显示加载失败?
- 懒虫小鑫
- python win系统下 打开TXT文件
- php连接mysql数据库实例
- springMVC+activemq整合注解方式
- 如何让google静态地图为jpg格式?
- Opencv之HOG特征与SVM相结合的人体检测(增加自举法)
- 文本转换工具
- 求助分页不正常
- 指针
- 和为n连续正数序列
- jQuery基础
- 加密算法