`
jibin6693923
  • 浏览: 13746 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

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());
    }

}

分享到:
评论

相关推荐

    JMS学习笔记(一)——JMS简介安装ActiveMQ

    **JMS学习笔记(一)——JMS简介与ActiveMQ安装** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它为应用程序提供了一种标准的方式,用来创建、发送、接收和读取...

    ActiveMQ学习笔记(二) JMS与Spring

    在本篇ActiveMQ学习笔记中,我们将探讨JMS(Java Message Service)与Spring框架的集成。JMS是一种标准API,用于在分布式环境中进行异步消息传递,而Spring框架则为开发人员提供了强大的依赖注入和管理服务的能力。...

    JMS学习资料,适合初始人员学习使用

    在JMS学习的过程中,了解和掌握以下几个关键概念至关重要: 1. **消息(Message)**:是数据的载体,它封装了要传输的信息,可以是文本、二进制数据或对象。JMS定义了几种不同类型的Message,如TextMessage、...

    JMS demo 及 资料

    学习JMS有助于开发人员理解和实现企业级的异步通信解决方案,它在大型分布式系统、微服务架构以及事件驱动的设计模式中扮演着重要角色。通过深入学习和实践JMS,你可以提升你的技能,更好地适应复杂的企业级开发需求...

    jms.rar_jar j_java jms_jms_jms jar_jms.j

    描述中的"java消息系统 JMS 学习代码 例子 jar"表明这个压缩包是为了学习JMS而准备的,里面包含了示例代码,便于开发者理解和实践JMS的工作原理。`jar`文件通常用于打包和分发Java类库,这里可能是为了方便导入和...

    JMS 简单使用指南

    - **OpenJMS**:这是一个开源的JMS实现,遵循JMS 1.0.2规范,适合用于学习和研究JMS。 - **iLinkMQ**:由中国人开发的纯Java实现,完全支持JMS接口规范1.0.2,提供事务和可靠消息传输等功能,适用于企业级应用。 ...

    jms学习文档

    消息可以是文本、二进制或其他复杂的数据结构。JMS提供多种消息类型,如普通消息、对象消息、流消息和持久化消息等,以适应不同的应用场景。 JMS API主要由两部分组成:Message和Destination。Message接口定义了...

    JBOSS建立JMS应用实例

    二、JBOSST中的JMS配置 1. 安装与启动:首先,需要下载并安装JBOSST,然后启动JBOSST服务,确保其运行正常。 2. 配置JMS资源:在JBOSST的配置文件(如standalone.xml或domain.xml)中,需要添加JMS相关的配置,包括...

    JMS 开发简明教程

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准API。它提供了一种可靠的消息传递机制,使得应用...学习JMS不仅可以提升你的专业技能,也有助于解决复杂的企业级问题。

    JMS--J2EE培训材料

    #### 二、JMS的基本结构 JMS提供了两个主要的消息域:点对点(PTP)和发布/订阅(Pub/Sub)。 1. **点对点(PTP)**:在此模式下,消息发送给特定的目标队列,每个消息会被一个消费者接收并消费。一旦消息被消费,就从...

    JMS标准规范培训教程

    **正文** JMS(Java Message Service)是Java平台上的一个标准接口,用于在分布式系统中进行异步消息传递。...通过深入学习"JMS规范培训教程",开发者能够更好地理解和应用JMS,构建高效、稳定的分布式系统。

    JMS1.1规范 中文版

    JMS接口提供了多种类型的消息,包括文本消息、对象消息、映射消息、流消息和二进制消息,以满足不同数据传输需求。此外,JMS还支持事务处理,确保消息的可靠传输,即使在系统故障后也能恢复。 "aybook....

    JMS规范培训教程

    **JMS规范培训教程** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准API。...学习JMS规范及其实现,如SUN MQ,对于从事企业级Java开发的人员至关重要。

    JMS 1.1 API JAVADOC 中文版 chm

    9. **消息类型**:JMS定义了几种不同类型的消息,包括文本消息(TextMessage)、二进制消息(BytesMessage)、对象消息(ObjectMessage)和映射消息(MapMessage),以适应不同类型的业务需求。 JMS 1.1 API文档的...

    JMS学习笔记

    **JMS学习笔记** Java消息服务(Java Message Service,简称JMS)是Java平台中用于在分布式环境中交换异步消息的标准API。它提供了一种在应用程序之间传递信息的方法,允许发送方和接收方无需同时在线即可进行通信...

    JMS所需jar包

    ActiveMQ不仅能够处理普通的消息,还可以处理流式消息和大型二进制数据。 压缩包子文件的文件名"apache-activemq-5.11.1"显然包含了Apache ActiveMQ的版本信息,5.11.1是该版本的发布号。这个压缩包中可能包含了...

    ActiveMQ在JMS中的运用-深入浅出JMS

    在压缩包文件“wsheng-jms”中,可能包含了使用ActiveMQ和JMS的示例代码或教程,通过学习这些资源,你可以更深入地了解如何在实际项目中使用这些技术。 总结来说,JMS和ActiveMQ为分布式系统提供了一种健壮的消息...

Global site tag (gtag.js) - Google Analytics