前一讲简单的介绍了一下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());
}
}
分享到:
相关推荐
**JMS学习笔记(一)——JMS简介与ActiveMQ安装** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它为应用程序提供了一种标准的方式,用来创建、发送、接收和读取...
### JMS 学习资源详解 #### 一、JMS 基本概念与通信模型 JMS(Java Message Service)是一种广泛应用于企业级应用程序之间的消息传递标准,它定义了一系列接口,用于创建、发送、接收消息。JMS 的设计目标是简化...
在本篇ActiveMQ学习笔记中,我们将探讨JMS(Java Message Service)与Spring框架的集成。JMS是一种标准API,用于在分布式环境中进行异步消息传递,而Spring框架则为开发人员提供了强大的依赖注入和管理服务的能力。...
在JMS学习的过程中,了解和掌握以下几个关键概念至关重要: 1. **消息(Message)**:是数据的载体,它封装了要传输的信息,可以是文本、二进制数据或对象。JMS定义了几种不同类型的Message,如TextMessage、...
### ActiveMQ_JMS学习资料深度解析 #### 一、JMS基本构件详析 ##### 连接工厂(Connection Factory) 连接工厂是JMS架构中的关键组件,负责创建与JMS服务提供商之间的连接。例如,ActiveMQ提供了`...
学习JMS有助于开发人员理解和实现企业级的异步通信解决方案,它在大型分布式系统、微服务架构以及事件驱动的设计模式中扮演着重要角色。通过深入学习和实践JMS,你可以提升你的技能,更好地适应复杂的企业级开发需求...
描述中的"java消息系统 JMS 学习代码 例子 jar"表明这个压缩包是为了学习JMS而准备的,里面包含了示例代码,便于开发者理解和实践JMS的工作原理。`jar`文件通常用于打包和分发Java类库,这里可能是为了方便导入和...
- **OpenJMS**:这是一个开源的JMS实现,遵循JMS 1.0.2规范,适合用于学习和研究JMS。 - **iLinkMQ**:由中国人开发的纯Java实现,完全支持JMS接口规范1.0.2,提供事务和可靠消息传输等功能,适用于企业级应用。 ...
消息可以是文本、二进制或其他复杂的数据结构。JMS提供多种消息类型,如普通消息、对象消息、流消息和持久化消息等,以适应不同的应用场景。 JMS API主要由两部分组成:Message和Destination。Message接口定义了...
二、JBOSST中的JMS配置 1. 安装与启动:首先,需要下载并安装JBOSST,然后启动JBOSST服务,确保其运行正常。 2. 配置JMS资源:在JBOSST的配置文件(如standalone.xml或domain.xml)中,需要添加JMS相关的配置,包括...
Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准API。它提供了一种可靠的消息传递机制,使得应用...学习JMS不仅可以提升你的专业技能,也有助于解决复杂的企业级问题。
#### 二、JMS的目标与适用场景 - **目标**:JMS旨在提供一种与平台无关的API,用于访问消息中间件。它支持两种消息传递模式:点到点(Point-to-Point)和发布/订阅(Publish-and-Subscribe)。 - **适用场景**: - ...
#### 二、JMS的基本结构 JMS提供了两个主要的消息域:点对点(PTP)和发布/订阅(Pub/Sub)。 1. **点对点(PTP)**:在此模式下,消息发送给特定的目标队列,每个消息会被一个消费者接收并消费。一旦消息被消费,就从...
**正文** JMS(Java Message Service)是Java平台上的一个标准接口,用于在分布式系统中进行异步消息传递。...通过深入学习"JMS规范培训教程",开发者能够更好地理解和应用JMS,构建高效、稳定的分布式系统。
JMS接口提供了多种类型的消息,包括文本消息、对象消息、映射消息、流消息和二进制消息,以满足不同数据传输需求。此外,JMS还支持事务处理,确保消息的可靠传输,即使在系统故障后也能恢复。 "aybook....
**JMS规范培训教程** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准API。...学习JMS规范及其实现,如SUN MQ,对于从事企业级Java开发的人员至关重要。
9. **消息类型**:JMS定义了几种不同类型的消息,包括文本消息(TextMessage)、二进制消息(BytesMessage)、对象消息(ObjectMessage)和映射消息(MapMessage),以适应不同类型的业务需求。 JMS 1.1 API文档的...
**JMS学习笔记** Java消息服务(Java Message Service,简称JMS)是Java平台中用于在分布式环境中交换异步消息的标准API。它提供了一种在应用程序之间传递信息的方法,允许发送方和接收方无需同时在线即可进行通信...
ActiveMQ不仅能够处理普通的消息,还可以处理流式消息和大型二进制数据。 压缩包子文件的文件名"apache-activemq-5.11.1"显然包含了Apache ActiveMQ的版本信息,5.11.1是该版本的发布号。这个压缩包中可能包含了...
在压缩包文件“wsheng-jms”中,可能包含了使用ActiveMQ和JMS的示例代码或教程,通过学习这些资源,你可以更深入地了解如何在实际项目中使用这些技术。 总结来说,JMS和ActiveMQ为分布式系统提供了一种健壮的消息...