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

JMS学习(八)

阅读更多
    在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个消费者来接受所回复的消息。

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
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 MessageSendReceiveAndReply {

    public static void main(String[] args) throws Exception {
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
  
        Connection connection = factory.createConnection();
        connection.start();
      
        //消息发送到这个Queue
        Queue queue = new ActiveMQQueue("testQueue");

        //消息回复到这个Queue
        Queue replyQueue = new ActiveMQQueue("replyQueue");
      
        final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        //创建一个消息,并设置它的JMSReplyTo为replyQueue。
        Message message = session.createTextMessage("Andy");
        message.setJMSReplyTo(replyQueue);
      
        MessageProducer producer = session.createProducer(queue);
        producer.send(message);
          
        //消息的接收者
        MessageConsumer comsumer = session.createConsumer(queue);
        comsumer.setMessageListener(new MessageListener(){
            public void onMessage(Message m) {
                try {
                    //创建一个新的MessageProducer来发送一个回复消息。
                    MessageProducer producer = session.createProducer(m.getJMSReplyTo());
                    producer.send(session.createTextMessage("Hello " + ((TextMessage) m).getText()));
                } catch (JMSException e1) {
                    e1.printStackTrace();
                }
            }
          
        });
      
        //这个接收者用来接收回复的消息
        MessageConsumer comsumer2 = session.createConsumer(replyQueue);
        comsumer2.setMessageListener(new MessageListener(){
            public void onMessage(Message m) {
                try {
                    System.out.println(((TextMessage) m).getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });
    }

}

    首先消息生产者发送一个消息,内容为“Andy”, 然后消费者收到这个消息之后根据消息的JMSReplyTo,回复一个消息,内容为“Hello Andy‘。 最后在回复的Queue上创建一个接收回复消息的消费者,它输出所回复的内容。

    运行上面的程序,可以得到下面的输出结果:

Hello Andy
分享到:
评论

相关推荐

    JMS完全实例(八个实例)

    通过这八个实例的学习,你将能够全面掌握JMS的核心特性和使用方式,理解其在实际项目中的应用,提升你在企业级应用开发中的消息处理能力。同时,结合Spring框架的使用,能让你更好地在实际工作中利用JMS实现高效、...

    JMS的中文教程(Java的消息驱动)

    通过本教程的学习,我们可以了解到JMS不仅仅是Java消息服务的一个标准API,更是构建高效、可靠的企业级应用的基础。掌握JMS的基本概念、架构和应用场景对于任何希望在分布式环境中构建稳定、高性能系统的Java开发者...

    JMS--J2EE培训材料

    通过本篇文章的学习,我们不仅了解了JMS的基本结构和开发实例,还深入了解了其高级接口、编程模型以及消息读取方式等内容。掌握JMS的核心概念和技术可以帮助开发者更好地构建复杂的企业级应用,提高系统的灵活性和可...

    JMS优秀硕士学位论文-目录

    根据提供的文件信息,我们可以梳理出一系列与JMS相关的硕士学位论文的研究方向及主要内容。JMS(Java Message ...通过对这些论文的学习和研究,可以全面了解JMS技术的最新发展动态及其在企业级应用中的重要作用。

    JMS简明教程--简体中文

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用集成的API...通过阅读"JMS简明教程.pdf",你可以进一步深化对JMS的理解,同时"中国java下载站.url"可能是获取更多Java资源和学习资料的链接。

    工作学习-消息中间件activeMQ学习总结

    本文总结了消息中间件ActiveMQ的学习要点,涵盖了为什么使用消息中间件、消息中间件的组成、JMS规范、ActiveMQ简介、消息中间件的应用场景等方面。 一、为什么使用消息中间件 使用消息中间件可以解决分布式系统...

    weblogic 学习资料大全

    WebLogic的主要功能包括:应用服务器、JMS消息队列、数据源管理、集群支持、安全管理、监控和诊断工具等。 二、WebLogic安装与配置 学习资料中可能包含WebLogic的安装步骤,包括下载、安装、配置环境变量等。配置...

    JBOSS_Esb学习资料

    7. **JMS路由**:《JBoss_ESB学习笔记9——第八个ESB应用JMS_Router.doc》和《JBoss_ESB学习笔记10——第九个ESB应用JMS_Topic.doc》涉及到了JMS(Java Message Service)在ESB中的应用,讲解了如何利用ESB进行消息...

    JBoss ESB 学习笔记

    - **重点**:学习如何使用JMS Router组件实现消息路由。 - **实现**:配置JMS Router,使其能够根据规则将消息路由到不同的目的地。 #### 十、第九个ESB应用JMS Topic - **重点**:使用JMS Topic组件实现发布订阅...

    Java学习路线图

    ### Java学习路线图详解 #### 一、Java基础(重点) **知识点概述:** ...通过以上八个模块的学习,你可以系统地掌握Java开发的各个方面,从基础到高级,为成为一名合格的Java开发者打下坚实的基础。

    J2EE学习课件(ppt)

    八、JTA(Java Transaction API) JTA是Java平台的标准事务管理API,可以协调跨越多个资源的事务。 九、JAF(JavaBeans Activation Framework) JAF允许程序处理未知的数据类型,如电子邮件附件,通过MIME类型识别...

    java的30个学习目标

    熟悉JNDI、JMS、JTA/JTS、JMX、JavaMail等J2EE技术,对于构建企业级应用和服务至关重要。 #### 十四、企业级JavaBeans(EJB) 最后,深入理解EJB(Stateless/Stateful Session Bean、Message-Driven Bean)的组件模式...

    Java学习思路.pdf

    八、Java学习路径 Java学习路径建议从基础开始,逐步学习面向对象编程(OOP)的原理、掌握Java语言基础语法、熟悉Java核心类库的使用。进一步通过实践项目来提高对Java Web技术和企业级开发的理解。随着学习的深入,...

    Java学习的30个目标.txt

    - **JMS**:掌握Java Message Service,学会使用JMS进行消息传递。 - **JTA/JTS**:了解Java Transaction API/Java Transaction Service,学会使用JTA进行事务管理。 - **JMX**:掌握Java Management Extensions,...

    java方向上要学习的知识

    - **JTA/JMS**:理解Java事务服务(JTA)与Java消息服务(JMS)的概念及应用场景。 #### 十、面向服务体系(SOA) - **设计模式**:学习常用的设计模式,如工厂模式、策略模式等。 - **面向对象分析与设计**:掌握面向...

    java学习中的一点忠告

    熟悉Java EE标准,包括JNDI、JMS、JTA/JTS、JMX等服务接口,以及使用Tomcat、Resin、JRun等Web容器部署Web应用,是成为一名合格的Java企业级开发者不可或缺的技能。 ### 八、XML与Web服务 学习XML相关API,如JAXP...

    java后端学习笔记.zip

    Java EE(Enterprise Edition)提供了许多企业级开发组件,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)和JPA(Java Persistence API)。学习这些技术可以构建更复杂的应用,如分布式系统、消息队列...

    WebSphere实验报告.zip

    学生将学习Java消息服务(JMS)的基本概念,包括创建消息队列和主题,以及如何在WebSphere中配置和使用JMS。理解JMS对于构建异步和解耦的应用程序具有重要意义。 8. 实验八:性能监控与调优 最后一次实验聚焦于...

    spring3.0学习

    Spring 3.0引入了对消息传递的全面支持,包括JMS、AMQP等协议。`@MessageMapping`注解用于处理消息,这使得异步通信和事件驱动的架构变得更加容易实现。 六、测试框架升级 Spring 3.0的测试支持更加完善,`@Run...

    kafka的学习

    ### Kafka的学习要点详解 #### 一、Kafka简介 Kafka是一种高性能的分布式消息系统,提供了类似JMS的功能,但其设计与实现完全不同,并非遵循JMS规范。Kafka的核心特性在于其高度可靠的消息传递机制,能够处理大量...

Global site tag (gtag.js) - Google Analytics