消息的消费者接收消息可以采用两种方式:
1.consumer.receive() 或 consumer.receive(int timeout);
2.注册一个MessageListener。
采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。后一种方式会注册一个监听器,当有消息到达的时候,会回调它的onMessage()方法。下面举例说明:
MessageReceive.java
package com.bijian.study; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; 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 MessageReceive { public static void main(String[] args) throws Exception { ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = factory.createConnection(); connection.start(); Queue queue = new ActiveMQQueue("testQueue"); final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageConsumer comsumer = session.createConsumer(queue); comsumer.setMessageListener(new MessageListener(){ @Override public void onMessage(Message m) { TextMessage textMsg = (TextMessage) m; try { System.out.println(textMsg.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); } }
MessageSend.java
package com.bijian.study; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Message; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQQueue; public class MessageSend { public static void main(String[] args) throws Exception { ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = factory.createConnection(); connection.start(); Queue queue = new ActiveMQQueue("testQueue"); final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Message message = session.createTextMessage("Hello JMS!"); MessageProducer producer = session.createProducer(queue); producer.send(message); System.out.println("Send Message Completed!"); } }
先运行MessageReceive.java,再运行MessageSend.java,将会看到MessageSend.java将消息一发送成功,MessageReceive.java即获取到了。
文章来源:http://www.cnblogs.com/guthing/archive/2010/06/12/1757149.html
相关推荐
- 消费者代码(Consumer)通常包含一个实现了`MessageListener`接口的类,这个类会被Spring容器自动初始化,并通过`<jms:listener-container>`配置绑定到特定的Destination。 6. **消息模型** SpringJMS支持两种...
**正文** 在IT行业中,Java消息服务(Java Message Service,JMS)是一种标准接口,用于在应用程序之间交换异步消息。它提供了一种可靠的消息...通过深入研究该项目,可以掌握JMS和Spring集成的关键技术和最佳实践。
- **MessageListener接口**:理解消息监听器如何工作,如何实现onMessage()方法来处理接收到的消息。 - **ConnectionFactory**:研究如何配置和创建ConnectionFactory,它是与消息中间件建立连接的关键。 - **...
2. **异步**:应用程序可以通过注册一个`MessageListener`,当消息到达时,系统自动调用`MessageListener`的`onMessage()`方法。 #### 七、开发示例 下面是一个简单的JMS发送消息程序示例: ```java ...
在本文中,我们将深入探讨如何使用Spring MVC框架与ActiveMQ结合实现JMS(Java Message Service)实例。首先,让我们理解ActiveMQ和JMS的基本概念。 ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了...
通过这些小项目,你可以深入理解JMS的工作原理,掌握其主要特性和使用场景,为构建更复杂的分布式系统打下坚实基础。在实践中,你可能会遇到各种挑战,但随着经验的增长,你会更好地了解如何利用JMS优化系统的性能和...
8. **消息监听器(MessageListener)**:通过实现MessageListener接口,消费者可以在接收到消息时自动调用onMessage()方法,实现异步处理。 在JMS技术文档中,你可能会找到关于如何设置JMS环境、创建连接工厂、建立...
`messageHandler`是处理消息的类,需要实现`MessageListener`接口并提供`onMessage`方法。 **5. 示例代码解析** 压缩包中的`SpringActiveMQCustomer`和`SpringActiveMQProvide`两个文件分别代表了消费者和生产者的...
3. **Message-driven POJOs (MDPs)**:Spring支持将普通的Java类转换为消息驱动的组件,只需实现MessageListener接口,即可处理由JMS消息触发的业务逻辑。 在Spring JMS 4.3.4.RELEASE中,主要的特性改进和优化包括...
4. 配置消息监听器:对于接收消息,可以使用`MessageListener`接口或者配置`DefaultMessageListenerContainer`。 5. 编写发送和接收消息的业务逻辑:在服务类中调用`JmsTemplate`的`send()`方法发送消息,而在监听器...
通过这八个实例的学习,你将能够全面掌握JMS的核心特性和使用方式,理解其在实际项目中的应用,提升你在企业级应用开发中的消息处理能力。同时,结合Spring框架的使用,能让你更好地在实际工作中利用JMS实现高效、...
"tutorials"文件夹可能包含一系列逐步指导,从基础知识到高级概念,帮助开发者快速掌握JMS Southbound的使用。 总之,JMS Southbound指南是学习如何将应用程序连接到JMS提供者并有效地利用消息传递功能的重要资源。...
Java消息服务(Java Message Service,简称JMS)是Java平台上的一个标准API,它为分布式环境中...通过深入研究这份资料,你可以更好地掌握如何在J2EE应用中有效地利用JMS进行通信和数据交换,提升系统的稳定性和效率。
**三、编写MessageListener** `MessageListener`是处理接收到消息的接口,需要实现`onMessage(Message message)`方法。例如: ```java public class MessageListener implements MessageListener { @Override ...
- JMS API的其他组件,如MessageListener接口,可以实现异步消息处理。 最后,实践是掌握JMS的关键。编写更多示例代码,尝试不同的消息类型、事务管理以及消息路由策略,将有助于你深入理解和应用JMS。记得在实践中...
在Spring应用中,我们需要配置JMS相关的bean,如ConnectionFactory、Destination(Queue或Topic)、MessageListener等。这些可以通过XML或Java配置实现。 2.3 发送消息 Spring提供了JmsTemplate类,用于发送JMS消息...
通过理解和掌握JMS,开发者可以创建出高效、健壮的异步通信解决方案。文件列表中的内容可能涵盖了JMS的多个方面,包括基本概念、使用示例、以及可能的实践指导。通过深入阅读这些文档,你将能更好地理解并运用JMS来...
本文将深入探讨如何使用Spring框架与ActiveMQ结合实现基于JMS的消息传递系统。 首先,理解JMS的基本概念至关重要。JMS定义了生产者(Producer)、消费者(Consumer)和消息队列(Queue)或主题(Topic)等核心组件...
此外,通过Spring的配置文件或Java配置,可以定义消息监听器(MessageListener),以便在接收到消息时执行相应的业务逻辑。 六、案例分析与实践建议 在实际开发中,结合Spring Boot的特性,可以进一步简化JMS与...
通过这个项目,学习者能够深入理解JMS的工作原理,掌握如何在实际项目中应用JMS进行信息交换和解耦系统组件。此外,也可能涉及事务管理、消息持久化、消息选择器等高级特性,这些都是JMS开发中的重要知识点。