`

深入掌握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 
 
分享到:
评论
1 楼 hyneng 2011-05-05  
这个和七一样有同样的错误

相关推荐

    深入掌握JMS.doc

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

    深入掌握JMS深入掌握JMS

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

    深入掌握JMS——ActiveMQ 十一章

    深入掌握JMS——ActiveMQ 十一章pdf,收集整理

    javax.jms-1.1.jar

    javax.jms-1.1.jar 一个jar包

    深入掌握JMS-ActiveMQ

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

    深入掌握 JMS(java message service)

    一篇深入的讲解了java message service技术的文档 ,希望对大家有所帮助

    OSB中JMS配置及队列使用说明

    OSB 中 JMS 配置及队列使用说明 OSB(Oracle Service Bus)是一种基于 Java 的集成平台,旨在...本文详细介绍了 OSB 中 JMS 配置及队列使用的步骤,旨在帮助读者更好地理解和掌握 OSB 中 JMS 配置及队列使用的技术。

    jms-1.1.jar

    jms-1.1.jar 解决maven 无法自动下载问题,手动放入仓库

    由浅入深学习、掌握JMS

    由浅入深学习、掌握JMS的几个教材,实用性强

    JMS(JMS(JMS(JMS(

    JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS(JMS

    深入掌握J2EE编程技术

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

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

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

    java8看不到源码-jms4s:jms的功能包装器

    看不到源码jms4s - jms 的功能包装器 没有人真的想使用 jms,但如果您别无选择,或者您不像我们,您可能会发现它很有用。 支持的功能: 消费,返回一个永无止境的可取消程序,可以从队列中同时消费 ...

    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....

    websphere MQ 所需jar包

    com.ibm.mq.commonservices-1.0、com.ibm.mq.defaultconfig-1.0、com.ibm.mq.headers-1.0.jar、com.ibm.mq.jmqi-1.0.jar、com.ibm.mq.soap-1.0.jar、com.ibm.mqjms-1.0.jar、jms-1.3.1_02.jar、providerutil-1.2.jar...

    JMS : Java Message Service (Java消息服务)

    JMS : Java Message Service (Java消息服务)1 引言 1.1 编写目的 1.2 名词解释

    JMS 简介以及Weblogic配置JMS图解

    Java Messaging Service(JMS)是一种标准的API,用于在Java应用程序之间交换消息,特别是在分布式环境中。JMS提供了一种与平台无关的方式,使得应用程序可以与各种消息中间件提供商进行交互,就像JDBC允许Java应用...

    JMS实现 IBM MQ的请求回复

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

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

    深入浅出JMS,主要介绍J2EE中的一个重要规范JMS,因为这个规范在企业中的应用十分的广泛,也比较重要,我们主要介绍JMS的基本概念和它的模式,消息的消费以及JMS编程步骤。

Global site tag (gtag.js) - Google Analytics