深入掌握JMS(二):一个JMS例子
前一讲简单的介绍了一下JMS的基本概念, 这一讲结合一个例子让大家深入理解前一讲的基本概念. 首先需要做的是选择一个JMS提供者, 如果在JavaEE环境中可以不用考虑这些. 我们选择ActiveMQ, 官方地址: http://activemq.apache.org/. 网上有很多介绍ActiveMQ的文档, 所以在这里就不介绍了.
按照上一讲的这个简图,
ConnectionFactory—->Connection—>Session—>Message
Destination + Session————————————>Producer
Destination + Session————————————>MessageConsumer
首先需要得到ConnectionFactoy和Destination,这里创建一个一对一的Queue作为Destination。
ConnectionFactory factory = new ActiveMQConnectionFactory(“vm://localhost”);
Queue queue = new ActiveMQQueue(“testQueue”);
然后又ConnectionFactory创建一个Connection, 再启动这个Connection:
Connection connection = factory.createConnection();
connection.start();
接下来需要由Connection创建一个Session:
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
现在暂且不用管参数的含义, 以后会详细讲到.
下面就可以创建Message了,这里创建一个TextMessage。
Message message = session.createTextMessage(“Hello JMS!”);
要想把刚才创建的消息发送出去,需要由Session和Destination创建一个消息生产者:
MessageProducer producer = session.createProducer(queue);
下面就可以发送刚才创建的消息了:
producer.send(message);
消息发送完成之后,我们需要创建一个消息消费者来接收这个消息:
MessageConsumer comsumer = session.createConsumer(queue);
Message recvMessage = comsumer.receive();
消息消费者接收到这个消息之后,就可以得到它的内容:
System.out.println(((TextMessage)recvMessage).getText());
至此,一个简单的JMS例子就完成了。下面是全部源码 :
import javax.jms.Connection;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
public class MessageSendAndReceive {
public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
Connection connection = factory.createConnection();
connection.start();
Queue queue = new ActiveMQQueue("testQueue");
final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Message message = session.createTextMessage("Hello JMS!");
MessageProducer producer = session.createProducer(queue);
producer.send(message);
System.out.println("Send Message Completed!");
MessageConsumer comsumer = session.createConsumer(queue);
Message recvMessage = comsumer.receive();
System.out.println(((TextMessage)recvMessage).getText());
}
}
分享到:
相关推荐
《蚂蚁集团开源的Java研发框架——gssdgv-zhuan-ke-master_java_详解》 在现代软件开发中,高效、...无论是在新项目的开发还是已有系统的升级优化,gssdgv-zhuan-ke-master_java_都值得广大Java开发者深入了解和采用。
在这个名为"zhuan 2.zip"的压缩包中,包含了一个支持移动端的转盘抽奖程序。这个程序的核心是通过JavaScript实现,使得用户可以通过点击来触发抽奖过程,从而增加用户体验的趣味性和参与度。 首先,我们来看“转盘...
通过这个项目,开发者不仅可以提升Java编程能力,还能掌握Android应用开发的基本流程,同时对游戏设计和实现有更深入的理解。对于初学者来说,这是一个很好的实践平台,可以逐步提升自己的技能。
"Map o_mapgis_mapgis noteo_mapgis zhuan jpg_out"这部分可能是描述了这个压缩包的主要功能或者过程,即MapGIS的二次开发功能,用于将MapGIS的地图数据转换成JPG格式的光栅图像。"o_mapgis_mapgis noteo_mapgis...
自媒体新媒体软件工具自媒体zhuan钱秘诀资料
在IT行业中,转换不同格式的文件是一项常见的任务,特别是在嵌入式系统开发或者软件工程领域。...理解和掌握这种转换技巧对于IT专业人士,尤其是从事嵌入式系统开发的工程师来说,是必备的技能之一。
#### 二、支持YAFFS文件系统 **1. MTD分区支持** - **概念介绍**: MTD (Memory Technology Device) 是Linux中的一个子系统,用于访问ROM、Flash等存储设备。其目的是简化新存储设备驱动程序的开发,为硬件和上层...
本人转的别人写的人工神经网络的学习体会与感受,真是受益匪浅啊!
文档标题和描述中提到的是关于个人通过SOHO(Small Office Home Office)网络工作赚钱的体验,标签为“技术”,这表明讨论的核心是如何利用网络技术和自我经营来赚取收入。部分内容中,作者分享了自己从怀疑到加入...
在给定的“zhuan-su-eliang.rar”压缩包中,包含了一个名为“zhuan su eliang.vi”的虚拟仪器(VI),这显然是一款用于转速测量的应用程序。 转速测量是机械工程、汽车工业、电力系统等领域中常见的技术需求。...
1. **编程语言**:开发者通常需要掌握至少一种或多种编程语言,如Java、Python、C++、JavaScript等,它们各有特性和用途,例如Java适合企业级应用,Python适合数据分析,C++适合高性能计算,JavaScript则用于前端...
在给定的“ban-zhuan.zip_JAVA穷举法搬砖”主题中,我们面对的是一个数学问题,该问题与实际的砖块分配有关。36块砖需要36个人来搬运,其中包括男性、女性和小孩,他们各自有不同的搬运能力。男性每次能搬4块砖,...
主要用于路径规划,程序读入之初,需要先读入Kinect相机拍摄的深度图像。
"XUAN-ZHUAN-led.zip_旋转LED_旋转LED 自适应_自适应旋转LED"这个压缩包文件内容是关于实现旋转LED自适应转速的程序,其核心目标是让LED屏幕上的字幕能够流畅地滚动,并根据设备的转速自动调整滚动速度,以保持最佳...
重构是迅速发现并修复有问题的代码的一种高效的方式。在《代码重构(c # & asp.net版)》中首次提供了在c#和asp.net中进行重构的专业方法,您将学习如何运用重构技术管理和修改代码
bai_zhuan=(int)zhuan/100; shi_zhuan=(int)zhuan0/10; ge_zhuan=(int)zhuan; write_data(table[bai_fen]); write_data(table[shi_fen]); write_data(table[ge_fen]); write_data(table[12]); write...
Deep Snake for Real-Time Instance Segmentation pytorch1.0 cuda8转6个pt
- **第二步**:如果在“打印机”下拉列表中找不到“Microsoft Office Document Image Writer”,说明未安装该组件,需通过Office 2003安装光盘进行安装。 - **第三步**:运行Microsoft Office Document Imaging,...
PDF转TXT格式是一种常见的文档转换需求,特别是在处理大量文本数据时。这个名为“pdfzhuantxt.rar”的压缩包提供了一个小程序,能够帮助用户将PDF文件转换为纯文本(TXT)格式。PDF(Portable Document Format)是...
标题中的“Office2003转2007”指的是将使用Microsoft Office 2003创建的文档转换为与Microsoft Office 2007兼容的格式。这通常涉及到文件格式的升级,因为Office 2007引入了新的文件扩展名,如.docx、.xlsx和.pptx,...