`
jackle_liu
  • 浏览: 147797 次
文章分类
社区版块
存档分类
最新评论

jboss4官方jms程序(Point-To-Point)

阅读更多
package com.rox;
import java.util.Properties;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import EDU.oswego.cs.dl.util.concurrent.CountDown;
/**
 * A complete JMS client example program that sends a
 *
 * TextMessage to a Queue and asynchronously receives the
 *
 * message from the same Queue.
 *
 *
 * @author Scott.Stark@jboss.org
 *
 * @version $Revision:$
 *
 */
public class SendRecvClient
{
    static CountDown done = new CountDown(1);
    QueueConnection conn;
    QueueSession session;
    Queue que;
    public static class ExListener implements MessageListener
    {
        public void onMessage(Message msg)
        {
            done.release();
            TextMessage tm = (TextMessage) msg;
            try
            {
                System.out.println("onMessage, recv text="
                + tm.getText());
            }
            catch (Throwable t)
            {
                t.printStackTrace();
            }
        }
    }
    public void setupPTP()
    throws JMSException, NamingException
    {
        Properties environment = new Properties();
        environment.put(Context.PROVIDER_URL, "localhost:1099");
        environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
       
        InitialContext iniCtx = new InitialContext(environment);
        Object tmp = iniCtx.lookup("ConnectionFactory");
        QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
        conn = qcf.createQueueConnection();
        que = (Queue) iniCtx.lookup("queue/testQueue");
        session = conn.createQueueSession(false,
        QueueSession.AUTO_ACKNOWLEDGE);
        conn.start();
    }
    public void sendRecvAsync(String text)
    throws JMSException, NamingException
    {
        System.out.println("Begin sendRecvAsync");
        // Setup the PTP connection, session
        setupPTP();
        // Set the async listener
        QueueReceiver recv = session.createReceiver(que);
        recv.setMessageListener(new ExListener());
        // Send a text msg
        QueueSender send = session.createSender(que);
        TextMessage tm = session.createTextMessage(text);
        send.send(tm);
        System.out.println("sendRecvAsync, sent text="
        + tm.getText());
        send.close();
        System.out.println("End sendRecvAsync");
    }
    public void stop() throws JMSException {
        conn.stop();
        session.close();
        conn.close();
    }
    public static void main(String args[]) throws Exception
    {
        SendRecvClient client = new SendRecvClient();
        client.sendRecvAsync("A text msg");
        client.done.acquire();
        client.stop();
        System.exit(0);
    }
}
红色部分根据需要添加.如果修改默认配置可以查看{JBOSS_HOME}/server/..../deploy/jms下相应的配置文件.
Scott.Stark说了: In the P2P model, a sender delivers messages to a queue and a single receiver pulls the message off of the queue. The receiver does not need to be listening to the queue at the time the message is sent.
在点对点模式中,接收端不需要在发送方发送的时候监听.
分享到:
评论

相关推荐

    jboss 7 配置 jms

    - JMS 支持两种主要的消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - 主要组件包括:消息生产者、消息消费者、消息代理(如消息队列或主题)、消息和目的地。 2. **...

    jboss-jms包

    - **消息模型**:JMS支持两种消息模型,点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。 - P2P模型中,消息从一个生产者发送到一个队列,然后由一个或多个消费者消费。消息一旦被消费...

    JBOSS建立JMS应用实例

    2. 消息模型:JMS支持两种消息模型——点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。前者基于队列,后者基于主题。 3. JMS实体:主要包括Message(消息)、MessageProducer(消息生产者)、...

    JBOSS建立JMS应用实例(附源码)

    - **消息模型**:JMS提供了两种主要的消息模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。P2P模型基于队列,消息由一个生产者发送到队列,然后由一个或多个消费者接收;Pub/Sub...

    JBOSS使用指南

    - 主要有两种传递模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。PTP模型中,消息由生产者发送给消费者,每个消费者只接收一次消息;Pub/Sub模型中,消息由生产者发送给主题,多...

    jboss4.2.2GA中文文档

    JMS支持两种基本的传递模型:点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。点对点使用队列,每个消息只有一个消费者;发布/订阅使用主题,允许多个订阅者接收消息。 以上只是JBoss 4.2.2 GA使用和...

    JMS 简单使用指南

    - **消息服务体系结构**:JMS定义了两种主要的消息传送模型——点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)模型。 - **消息传送模型对照表**:PTP模式使用Queue,消息只能被一个消费...

    ESB应用JMS_Topic

    JMS支持两种类型的消息模型:点对点(Point-to-Point, Queue)和发布/订阅(Publish/Subscribe, Topic)。 在本案例中,我们将深入探讨如何在JBoss ESB中利用JMS Topic实现消息通信。 #### 二、JMS Topic应用场景 ...

    fuse esb mq jms

    - 支持两种消息传递模式:点对点(Point-to-Point, PTP)和发布/订阅(Publish-Subscribe, PUB/SUB)。 - 提供了事务支持,确保消息的可靠传递。 - 可以在不同的消息中间件之间进行互操作。 ### 三、ActiveMQ ...

    Jboss messaging

    JMS 提供了一种在分布式环境中可靠地传递数据的方式,支持点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)两种模型。Jboss Messaging 实现了JMS规范,提供了更高级别的功能和优化,如事务处理、高可用性...

    基于JMS(Java Messaging Service)开发JAVAMAIL详解

    JMS支持两种主要的消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个生产者发送到一个队列,然后由一个消费者接收。而在发布/订阅模型中,消息从一个...

    ActiveMQ教程+配置借鉴.pdf

    - **点对点(Point-to-Point)**:在这种模式下,每个消息只被一个消费者接收,通常用于实现请求-响应模型。 - **发布/订阅(Publish/Subscribe)**:在此模式下,多个消费者可以订阅同一主题,当消息发布时,所有...

    Message-Driven Bean EJB实例源代码

    它定义了两种消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。在MDB中,通常使用P2P模型的队列或Pub/Sub模型的主题。 4. **MDB的生命周期**: MDB的生命周期由容器管理,包括...

    ActiveMQ教程+配置[归纳].pdf

    1. **多模式消息传递**:支持点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)两种消息模式。 2. **平台兼容性**:能够与JBoss、Geronimo等开源应用服务器集成,并且支持Spring框架的消息驱动。 3. **P2P...

    activemq简介

    ActiveMQ支持两种主要的消息传递模式:点到点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。在PTP模式下,消息从生产者发送到消费者,每个消费者接收的消息是独一无二的;而在Pub/Sub模式下,...

    Hornetq2.1中文手册

    - **消息队列模式**(Point-to-Point):消息被发送到一个队列,由一个消费者接收,适合一对一的通信。 - **消息的广播/订阅模式**(Publish-Subscribe):消息发布到一个主题,多个订阅者可以接收到,适用于一对...

Global site tag (gtag.js) - Google Analytics