WEB 项目中JMS的简单应用

1.现在pom.xml 文件中引入所需的依赖

2. 配置application.xml

<!-- Activemq 连接工厂 -->
<bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg value="admin" />
<constructor-arg value="admin" />
<constructor-arg value="failover:(tcp://192.168.100.109:61616)?timeout=2000" />
</bean>

<!-- ConnectionFactory Definition -->
<bean id="amqConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="activeMQConnectionFactory" />
</bean>

<!-- Default Destination Queue Definition -->
<!-- 测试配置多个Destination -->
<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="MC_MESSAGE" />
</bean>

<!-- JmsTemplate Definition -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="amqConnectionFactory" />
<property name="defaultDestination" ref="destination" />
</bean>

<!-- Message Sender Definition -->
<bean id="messageSender" class="com.xxx.config.MessageSender">
<constructor-arg index="0" ref="jmsTemplate" />
<constructor-arg index="1" ref="destination" />
</bean>
<!-- 消息监听器,主要监听的目的地址 Message Receiver Definition -->
<bean id="messageReceiver" class="com.xxx.config.MessageReceiver">
</bean>
<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="amqConnectionFactory" />
<property name="destinationName" value="MC_MESSAGE" />
<property name="messageListener" ref="messageReceiver" />
</bean>

3. 书写MessageSender

package com.xxx.config;

import javax.jms.Destination;

import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

@Component
public class MessageSender {
private final JmsTemplate jmsTemplate;
private final Destination destination;

public MessageSender(final JmsTemplate jmsTemplate, final Destination destination) {
this.jmsTemplate = jmsTemplate;
this.destination = destination;
}

public void send(final String text) {
try {
jmsTemplate.setDefaultDestination(destination);
jmsTemplate.convertAndSend(text);
// System.out.println("发送消息 : " + text);
} catch (Exception e) {
e.printStackTrace();
}
}
}

4.消息MessageReceiver

package com.xxx.config;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

public class MessageReceiver implements MessageListener {

public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
try {
textMessage.getText();
// System.out.println("接收到消息: " + text);
} catch (JMSException e) {
e.printStackTrace();
}
}
}

}

5接口.调用 即可将消息发送到指定的消息队列当中

@Resource(name="messageSender")
private MessageSender messageSender;

//定义消息实体,存储内容,并将实体转化为字符串  调用send方法 将消息发送出去,同时消息监听会打印监听到的消息

QueneVo Vo = new QueneVo();
Vo.setId(problem.getProblemId());
Vo.setTitle("创建了新问题【"+problem.getProblemId()+"】,需要您处理");
Vo.setContent(problem.getProblemDescribe());
Vo.setMsgTime(DateUtil.getTime(0));
this.messageSender.send(JsonUtils.writeObject(Vo));

时间: 2024-10-11 01:45:16

WEB 项目中JMS的简单应用的相关文章

Web项目中创建简单的错误处理页面

当应用程序出现错误的时候,如果没有做错误页面处理的话,会直接输出一些敏感的信息出来,有时候甚至会直接将项目所在的物理路径给显示出来,严重缺乏安全性,并且错误种类繁多,页面风格不一,导致用户体验不好,本文介绍如何在web项目中创建错误页面,从而友好的提示错误信息. 一,创建错误页面error.aspx,前台代码如下(可根据实际需要增加元素): <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&qu

Java 容器在实际web项目中应用

前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用法.可结合图片代码了解Java中的容器 备注 :这个地方 ,参考于朝向远方的博客Java容器详解,既然前人总结的这么好,我就直接拿来用,在这里更注重在实际开发中的例子,感谢那些总结的前辈们,辛苦了. 简单的数组例子 Thinking in Java 中并没有把数组归为Java的容器,实际上数组的确不是Java

在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式,虽然Web API或者WCF方式的调用,相对直接连接数据库方式,响应效率上略差一些,不过扩展性强,也可以调动更多的设备接入,包括移动应用接入,网站接入,Winfrom客户端接入,这样可以使得服务逻辑相对独立,负责提供接口即可.这种方式中最有代表性的就是当前Web API的广泛应用,促进了各个接入端

web项目中nicedit富文本编辑器的使用

一.为什么要用富文本编辑器? 先说什么是富文本编辑器吧,普通的html中input或textarea标签只能进行简单的输入,而做不到其他的文本调整功能,甚至 连空格与回车都要另写工具类去识别,更谈不上字体大小和颜色的修改.整体排版都功能了.其实一般读入文段类型的输入框都需 要富文本编辑器,没错,你们平时写博客用的就是富文本编辑器.如果还是无法理解富文本与普通输入框的区别,请看下图:  二.为什么要选nicedit 同类富文本编辑器有很多,这里选nicedit来说并不是因为它有多好,反而它功能并不

Java Web项目中使用Freemarker生成Word文档

Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的内容放上${}占位符,就可以使用像Freemarker这样的模板引擎将出现占位符的地方替换成真实数据,这种方式较之其他的方案要更为简单. 下面举一个简单的例子,比如在Web页面中填写个人简历,然后点击保存下载到本地,效果图如下所示. 打开下

在Java Web项目中引入Mondrian多维分析框架

一,Mondrian简介 Mondrian是一个开源项目,一个用Java写成的OLAP引擎.它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据.然后经过Java API以多维的方式对结果进行展示. Mondrian的使用方式同JDBC驱动类似.可以非常方便的与现有的Web项目集成. Mondrian OLAP 系统由四个层组成,可分为从最终用户到数据中心, 顺序为: 1表现层(the presentation layer) 2维度层(the dimensional layer) 3集合

非web项目中使用XDT的实例

概述 XDT是Asp.net 4.0中的一个新特性,可以让使用者在Web项目中在不同的生成类型下,快速切换配置文件(如在debug场景下使用测试配置数据库,在Release场景下使用正式配置数据库). 但在非web项目中,VS并未提供如此方便的功能.这时如果我们同样想使用xdt transforms的功能,就需要自己配置MSbuild文件. 在本例中我们是通过修改MSBuild配置文件,来使非web项目同样可以使用XDT功能. MSBuild全称(Microsoft Build Engine),

java、JSP web项目中的路径问题

java web项目中的路径,有相对路径和绝对路径 什么是相对路径呢    举个简单例子 我们有项目   test     发布后地址  http://localhost:8080/test/ 页面  qiantai/login.jsp        页面中链接  <a href="index.jsp" /> JSP页面相相对寻址     链接的最终地址是    http://localhost:8080/Test/qiantai/index.jsp 相对路径是这么一个过程

在C#的Web项目中调用Matlab代码的方法

为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延了1个多月,一方面因为实习越来越多事情,时间减少了很多:但更重要在于C#调用Matlab的方法真心麻烦,C#的Web项目中进行这个操作貌似会碰到更多细节上的问题.而且总是很不稳定,操作系统.Matlab或VS的版本.遗漏一些文件或步骤都会造成失败!这个问题本人已经搞了很长时间,直至前几天,在同学的帮助下,自己再弄一遍,总算成功了!下面我及时把这个