Spring+JMS+ActiveMQ+Tomcat实现消息服务
来源:互联网 发布:黄牒在淘宝网叫什么 编辑:程序博客网 时间:2024/04/20 14:27
基于spring+JMS+ActiveMQ+Tomcat,我使用的版本情况如下所示:
- Spring 2.5
- ActiveMQ 5.4.0
- Tomcat 6.0.30
下面通过学习与配置,实现消息服务的基本功能:发送与接收。Spring对JMS提供了很好的支持,可以通过JmsTemplate来方便地实现消息服务。这里,我们的消息服务不涉及事务管理。下面简单说明实现过程:
先看一下,我们最终的Spring配置文件applicationContext.xml的内容,如下所示:
我们使用Spring的org.springframework.jms.listener.DefaultMessageListenerContainer来收集消息,通过设置一个消息监听器,具体实现类为org.shirdrn.spring.jms.integration.ReceiveMessageListener,代码如下所示:
上面,对发送的消息进行监听,并接收处理,我们只是简单地打印出一条日志内容。
对于listenerContainer,还需要注入连接工厂connectionFactory和消息目的destination这两个属性:connectionFactory我们使用ActiveMQ的org.apache.activemq.ActiveMQConnectionFactory,并通过JNDI服务,绑定到名字java:comp/env/myJMS/ConnectionFactory上;而destination属性通过使用ActiveMQ的org.apache.activemq.command.ActiveMQQueue消息队列,也是通过JNDI服务绑定到名字java:comp/env/myJMS/MessageQueue上。所以,在Tomcat的conf/context.xml中的<Context>元素里面加上如下配置:
我们通过使用JmsTemplate来实现消息的发送,所以实现的发送类要将JmsTemplate注入进去,实现代码如下所示:
上面基于Spring的MessageCreator来创建消息,通过调用JmsTemplate的send方法发送出去。
对于Web,我们使用了Spring MVC,通过实现一个控制器org.shirdrn.spring.jms.integration.SendMessageController来控制页面消息的发送及其视图的派发。我们实现的SendMessageController类继承自MultiActionController,可以在一个控制器中实现多个Action,代码实现如下所示:
上面调用模型层(Model)的MessageSender来实现发送消息的处理逻辑,如果发送成功,视图派发到successView指定的页面。可以看到,最前面我们给出的Spring配置内容分为三组,最后一组是对控制器的配置:
viewResolver 视图解析器配置,可以将控制器中指定前缀(/)解析为后缀是.jsp的页面,例如/success解析为/sucess.jsp
urlMapping 请求URL与控制器的映射,例如对于满足/sendMessage.do模式的请求,都会被指派给sendMessageController去处理
sendMessageController 控制器实现类,里面的方法名称可以自定义,但要在org.springframework.web.servlet.handler.SimpleUrlHandlerMapping中的mappings属性中配置映射
然后,我们需要一个web部署描述文件,web.xml文件配置内容,如下所示:
另外,我们还要实现一个页面,提供输入发送消息的表单,提交后交给后台处理,成功发送后跳转到一个成功页面。表单输入页面为index.jsp,如下所示:
成功页面为success.jsp,就是给一个成功的提示信息,如下所示:
至此,我们可以将实现的简单web工程发布到Tomcat容器,然后启动Tomcat服务器,通过页面可以发送消息,并通过日志查看,实际消息发送和接收的情况。
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- (六)Spring+JMS+ActiveMQ+Tomcat实现消息服务
- Spring+JMS+ActiveMQ+Tomcat6.0 实现消息服务
- Spring jms 和 ActiveMQ 开发消息服务
- JMS消息服务-ActiveMQ
- Spring + ActiveMQ实现jms发送消息
- Spring + ActiveMQ实现jms发送消息
- Blazeds+JMS(ActiveMQ)+Spring实现消息
- JMS之Spring +activeMQ实现消息队列
- JMS-ActiveMQ:Java消息服务
- spring jms activeMQ 消息队列
- java消息服务使用总结(JMS:通过ActiveMQ实现)
- 使用angularjs的$http.post异步提交数据时,服务器接收不了的问题
- Activity的Launch mode详解 singleTask正解
- STL deque
- C语言中static全局变量与普通的全局变量的区别
- 不同的映射表下 误码率差太多,是什么原因?映射表真的对误码率有这么大影响?
- Spring+JMS+ActiveMQ+Tomcat实现消息服务
- C语言编程练习二
- github和ceph相关命令
- Android中图片的三级缓存---小理解
- RocketMQ与kafka对比(18项差异)
- 勾股定理一日一证连载155
- 中缀算数表达式求值
- OS China Git 小吐一槽
- 【js类库AngularJs】解决angular的post提交问题