`
wayne446
  • 浏览: 28664 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JMS(2)

    博客分类:
  • j2ee
JMS 
阅读更多

异步队列消息的接收有一点区别,但发送的代码不用改变:

 1 @Stateless 

 2 public class JMSReceiveBean implements JMSReceiveRemote {
 3
 4    @Resource(name = "jms/Queue")
 5    private Queue queue;
 6    @Resource(name = "jms/ConnectionFactory")
 7    private ConnectionFactory queueFactory;
 8
 9    private void receiveJMSMessageFromQueue() throws Exception {
10        Connection connection = null;
11        Session session = null;
12        connection = queueFactory.createConnection();
13        session = connection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
14        MessageConsumer consumer = session.createConsumer(queue);
15        consumer.setMessageListener(new MessageListener() {
16
17            public void onMessage(Message message) {
18                TextMessage msg = (TextMessage) message;
19                try {
20                    String txt = msg.getText();
21                    Logger.getLogger(JMSReceiveBean.class.getName()).log(Level.SEVERE, txt);
22                }
 catch (Exception ex) {
23                    ex.printStackTrace();
24                }

25            }

26        }
);
27        
28        connection.start();
29    }

30
31    public void receiveMessage() {
32        try 
33            receiveJMSMessageFromQueue();
34        }
 catch (Exception ex) {
35            Logger.getLogger(JMSReceiveBean.class.getName()).log(Level.SEVERE, null, ex);
36        }

37    }

38}


在15行消息使用者上设置了一个消息监听器,而没有使用同步的receive方法。由于这是异步接收消息,程序并没有处于阻塞状态,为了避免在接收到消息之前连接终止,所以在28行之后并没有关闭Connection,实际上这一步是不可缺少的。
分享到:
评论

相关推荐

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

    PDS-17001_JMS583_Datasheet_(Rev._1.0)_JMS583_jmicron_jms583开发_

    JMS583是一款由JMicron科技公司设计的高性能USB 3.1 Gen 2至PCIe Gen3x2桥接芯片,旨在为存储设备提供高速数据传输能力。这款芯片是针对现代数据密集型应用而优化的,如SSD固态硬盘和外部存储解决方案,它能够充分...

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

    java.jms.jar JMS需要的JAR包

    `javax.jms.jar` 文件中包含了如`javax.jms.Queue`, `javax.jms.Topic`, `javax.jms.MessageProducer`, `javax.jms.MessageConsumer`, `javax.jms.ConnectionFactory`等关键接口,以及其他辅助类和异常类,开发者...

    jms-1.1.jar(jms工具jar包)

    2. **消息生产者(Message Producer)**:负责创建和发送消息到消息队列或主题的实体。生产者通过`Session`对象创建消息,并使用`MessageProducer`对象将其发送到目的地。 3. **消息消费者(Message Consumer)**:...

    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

    javax.jms-1.1.jar

    2. **消息模型**:JMS支持两种消息模型——点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个队列(Queue)中发送到另一个队列,每个消息仅被一个消费者接收。...

    JMS 简介以及Weblogic配置JMS图解

    2. **JMS客户**:基于Java的应用程序或对象,它们是消息的生产者或消费者。 3. **JMS生产者**:创建并发送消息的组件。 4. **JMS消费者**:接收和处理消息的组件。 5. **JMS消息**:包含数据的对象,由报头和消息...

    jms-1.1.jar

    《JMS 1.1.jar:Java消息服务与Maven的深度解析》 在Java开发领域,消息服务(Java Message Service,简称JMS)扮演着至关重要的角色,它为应用程序提供了一种标准的方式来创建、发送、接收和读取消息。JMS 1.1.jar...

    JMS消息模型 JMS学习.doc

    6. **JMS in Application Servers**:JMS通常集成在J2EE(Java 2 Enterprise Edition)应用服务器中,作为其组件服务的一部分,提供消息服务的便捷接入和管理。 使用JMS的优势在于: - **异步处理**:JMS允许应用...

    javax.jms包,sun的JMS接口规范包

    2. **消息模型**:JMS支持两种消息传递模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,每个消息仅由一个消费者接收,通常通过队列实现;在Pub/Sub模型中,消息可以被...

    JMS583 USB PCIE 桥接芯片方案

    **JMS583 USB转PCIE桥接芯片方案** JMS583是一款由JMicron科技公司设计的高效能USB到PCI Express (PCIe)桥接芯片,旨在为电子设备提供一种灵活的方式来实现高速数据传输。这款芯片能够将USB接口转换成PCIe接口,以...

    JMS578多达13个固件打包升级工具包 可修改休眠时间

    文件包含: 13个不同固件 两个固件升级工具 其中一个是量产工具可以修改休眠时间和盒子信息 TRIM检查工具 有几个固件版本为全网首发,别人没有的资源 固件列表: JMS578_00.01.00.05 ...JMS578_254.02.03.09_NoUAS

    JMS578 windows烧录工具,JMS578FwUpdate,固件,相关文档

    JMicron JMS578 USB/SATA bridge JMS578介绍手册JMS578_Product+Brief.pdf JMS578固件(支持Android系统/linux系统) JMS578 windows的烧录工具和JMS578FwUpdate JMS578-Hardkenel-Release-v173.01.00.02-20190306....

    JMS入门文档,JMS入门文档

    2. **JMS API**: - **ConnectionFactory**:创建连接到消息代理的工厂对象。 - **Connection**:应用程序与消息代理之间的物理连接。 - **Session**:在连接内创建的线程安全的上下文,用于创建消息消费者和生产...

    JMS demo 及 资料

    2. **消息队列(Message Queue)与主题(Topic)**: JMS提供了两种消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe)。在P2P模型中,消息被发送到一个消息队列,每个消息只被一个消费者接收...

    weblogic中使用JMS发送和接受消息

    2. **配置JMS服务器**:在JMS模块下,添加JMS服务器,设置服务器名称、存储区配置等。 3. **创建连接工厂**:这是客户端连接到JMS提供者的桥梁,可以创建QueueConnectionFactory和TopicConnectionFactory。 4. **...

    spring-jms源码

    2. 事务管理:Spring JMS如何利用JMS的事务特性来保证消息的一致性。例如,当启用事务时,JmsTemplate如何确保消息在所有操作成功后才真正发送,或者在任何异常发生时回滚。 3. 消息监听:MessageListenerContainer...

    maximo的JMS配置

    - 队列 2:`sqout`,`jms/maximo/int/queues/sqout` - 队列 3:`cqin`,`jms/maximo/int/queues/cqin` - 创建与队列同名的新子部署。 - 将子部署的目标服务器设为 `subdeployment_nameserver`。 - **目的**:...

Global site tag (gtag.js) - Google Analytics