`

深入掌握JMS(八)JMSReplyTo

    博客分类:
  • 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.doc

    【深入掌握JMS】 JMS(Java Message Service)是Java平台中用于消息传递的标准API,它定义了消息的创建、发送、接收规范,使得不同应用系统间的数据交换变得简单。JMS提供了两种消息通信模型:点对点(P2P)和发布/...

    深入掌握JMS——ActiveMQ 十一章

    ### 深入掌握JMS——ActiveMQ 十一章 #### JMS基本概念与重要知识点解析 **JMS(Java Message Service)简介** JMS(Java消息服务)是一种广泛应用于企业级应用中的消息中间件协议,它为应用程序提供了一种高效、...

    深入掌握 JMS(java message service)

    ### 深入掌握 JMS(Java Message Service) #### JMS 基础概念 - **JMS**(Java Message Service)是一种Java平台中的消息中间件技术标准,它定义了一套标准API,用于应用程序之间的消息传递。JMS的出现极大地简化...

    深入掌握JMS-ActiveMQ

    JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。本资源为chm格式,深入介绍了ActiveMQ的应用。

    深入掌握JMS深入掌握JMS

    【深入掌握JMS】 JMS(Java Message Service)是Java平台中用于企业级应用间进行异步消息传递的标准API。它定义了一套统一的接口,使得开发者能够使用各种不同的消息中间件产品,如ActiveMQ,无需关注底层实现的...

    由浅入深学习、掌握JMS

    本系列教材旨在帮助读者从基础到深入地理解和掌握JMS的核心概念与实践。 首先,**《利用JMS建立消息传递系统》** 这份文档会介绍如何使用JMS来构建一个消息传递系统的基本步骤。这包括创建消息生产者、消费者,以及...

    深入掌握J2EE编程技术.rar

    《深入掌握J2EE编程技术》是一本专为Java企业级开发人员精心编写的指南,旨在帮助读者全面理解和精通J2EE(Java Platform, Enterprise Edition)的各项核心技术。免积分下载的特点使得更多的开发者能够轻松获取这份...

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

    **ActiveMQ在JMS中的应用——深入理解JMS** Java消息服务(Java Message Service,简称JMS)是一种标准API,用于在Java应用程序之间传递消息,它提供了一种解耦和异步处理数据的方式。JMS允许应用程序创建、发送、...

    深入掌握J2EE编程技术

    《深入掌握J2EE编程技术》全面介绍了JSP层,EJB层和EIS层的设计思想与编程技术,涉及的内容包括:JDBC,JNDI,LDAP,Servlet,JSP,Taglib,EJB,J2EE,Connector,SAX与DOM,RMI,CORBA,JavaMail和JMS。...

    JMS实现 IBM MQ的请求回复

    目的:通过JMS 实现 IBM MQ的请求应答功能 工作原理:消息生产者发送消息到队列IN1,然后可以异步或者同步等待消费者接收到IN1消息后,生成应答消息,并发布到IN2队列中。生产者通过messageid在IN2队列中进行消息...

    jms深入详解(说明介绍及源码)

    深入探索jms,包含JMS深入探究十篇.doc、amq Maven工程、apache-activemq-5.8.0 JMS Provider。从浅到深讲解了JMS接口的用法,并以activemq为实例进行实现。

    JMS完全实例(八个实例)

    在这个“JMS完全实例”中,我们将深入探讨八个独立的程序,它们覆盖了JMS的多个核心概念和应用场景。 1. **JMS简单收发** JMS的基本操作是发送和接收消息。在这些实例中,我们将看到如何使用生产者(Producer)...

    深入浅出JMS-JMS介绍说明文档

    本文旨在详细介绍JMS的核心概念、消息模型及编程模型,帮助读者深入理解JMS的工作原理及其应用场景。 #### 二、JMS基本概念 JMS是一种用于实现分布式系统中消息通信的标准或规范。其核心功能在于降低系统间的耦合...

    jms-1.1.jar

    首先,我们来深入了解JMS。JMS是Java平台的一个标准接口,它定义了生产、消费和管理消息的一组API。通过JMS,开发者可以使用消息中间件来传递数据,这种中间件能够处理消息的路由、缓冲和可靠传递,从而提高系统的可...

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

    对于深入理解和掌握J2EE架构的开发者来说,掌握JMS是非常重要的。 #### 二、JMS的目标与适用场景 - **目标**:JMS旨在提供一种与平台无关的API,用于访问消息中间件。它支持两种消息传递模式:点到点(Point-to-...

    javax.jms.jar

    Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....

    javax.jms.jar下载

    javax.jms.BytesMessage.class javax.jms.Connection.class javax.jms.ConnectionConsumer.class javax.jms.ConnectionFactory.class javax.jms.ConnectionMetaData.class javax.jms.DeliveryMode.class javax.jms....

    JMS demo 及 资料

    在这个"JMS demo 及 资料"的压缩包中,我们可能找到了一些关于JMS的基础教程和示例代码,帮助初学者了解和掌握JMS的基本用法。 JMS的核心概念主要包括以下几个部分: 1. **消息**: 消息是JMS中的基本数据单元,它...

    JMS学习笔记精心总结

    通过阅读《有关JMS的一点看法》、《Apache Geronimo的JMS实现:ActiveMQ》等文章,我们可以深入理解JMS的使用场景、优缺点以及最佳实践。同时,《JAVA基础:什么是JMS》和《JMS简介》等资料可以帮助我们系统地了解...

    JMS

    源码分析可以帮助开发者更深入地理解JMS如何处理消息的发送、接收和存储,以及如何确保消息的可靠传递。 **压缩包子文件的文件名称列表:“JMS.mmap”** "Mmap"通常指的是内存映射文件(Memory-Mapped File),这...

Global site tag (gtag.js) - Google Analytics