消息的消费者接收消息可以采用两种方式:
1、consumer.receive() 或 consumer.receive(int timeout);
2、注册一个MessageListener。
采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。后一种方式会注册一个监听器,当有消息到达的时候,会回调它的onMessage()方法。下面举例说明:
view plaincopy to clipboardprint?
01.MessageConsumer comsumer = session.createConsumer(queue);
02.comsumer.setMessageListener(new MessageListener(){
03. @Override
04. public void onMessage(Message m) {
05. TextMessage textMsg = (TextMessage) m;
06. try {
07. System.out.println(textMsg.getText());
08. } catch (JMSException e) {
09. e.printStackTrace();
10. }
11. }
12.
13. });
分享到:
相关推荐
在Spring中,实现异步消息监听器有三种方式:实现 javax.jms.MessageListener 接口、实现 Spring 的 SessionAwareMessageListener 和捆绑一个标准 POJO 到 Spring 的 MessageListenerAdapter 类上。这三种方法在消息...
它包括了`JmsTemplate`、`MessageListenerContainer`等组件,可以简化消息的发送和监听。 9. **jta.jar**(Java Transaction API):如果你的应用需要在多个资源(如数据库和JMS)之间进行事务管理,那么JTA是必不...
javax.jms.MessageListener.class javax.jms.MessageNotReadableException.class javax.jms.MessageNotWriteableException.class javax.jms.MessageProducer.class javax.jms.ObjectMessage.class javax.jms.Queue....
javax.jms.MessageListener.class javax.jms.MessageProducer.class javax.jms.MessageConsumer.class javax.jms.Queue.class javax.jms.TopicSubscriber.class javax.jms.QueueBrowser.class javax.jms....
总结起来,"JMS之Spring + ActiveMQ实现消息队列"涉及到的关键知识点包括:Spring框架的JMS支持、ActiveMQ的使用、ConnectionFactory的配置、JmsTemplate和MessageListener的实现,以及消息队列在解决系统解耦和异步...
MessageListenerContainer是Spring JMS用于异步处理消息的组件,它可以监听一个或多个队列或主题,并在接收到消息时调用预先注册的MessageListener。这使得应用程序可以专注于业务逻辑,而无需关心消息的接收和处理...
<property name="messageListener" ref="messageListener" /> ``` **五、编写生产者和消费者** 1. **生产者**:使用Spring的JmsTemplate发送消息。 2. **消费者**:实现MessageListener接口,重写onMessage方法...
- `applicationContext-jms.xml`是Spring配置文件,通常包含JMS相关的bean定义,如`ConnectionFactory`、`Destination`(队列或主题)、`MessageListenerContainer`以及`MessageConverter`等。 - `...
`MyMessageListener`是你自定义的类,实现了`javax.jms.MessageListener`接口,其中的`onMessage(Message message)`方法会在接收到消息时被调用。 发送消息同样简单,我们创建一个`JmsTemplate`实例,调用`...
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="messageListener" ref="messageListener" /> <bean id="messageListener...
为了监听Oracle AQ队列,你需要实现javax.jms.MessageListener接口,并重写onMessage()方法。在Spring中,你可以通过定义一个Bean,将其类型设置为MessageListener,并配置MessageListenerContainer来启动监听器。 ...
- **MessageListenerContainer**:通过实现`MessageListener`接口,Spring容器会自动启动监听线程,接收到消息后调用监听器方法。 - **JmsTemplate.receive()**:阻塞式接收,调用后会等待直到有消息到达。 **7. ...
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="messageListener" ref="messageListener" /> ``` 以上就是Spring集成JMS...
1. **JMS API**:理解JMS API的基本概念,包括ConnectionFactory、QueueConnection、QueueSession、QueueReceiver、MessageListener等对象的创建和使用。 2. **IBM MQ连接**:配置IBM MQ的连接参数,如主机名、端口...
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="messageListener" ref="messageListener"/> ``` 5. **编写消息生产者...
Spring提供了`org.springframework.jms`包,该包下包含了许多用于JMS的抽象类和接口,如`ConnectionFactory`, `MessageListenerContainer`, `JmsTemplate`等,它们极大地简化了JMS的使用。例如,`JmsTemplate`提供...
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="messageListener" ref="messageListener" /> <bean id="messageListener...
<property name="messageListener" ref="messageListener"/> ``` 上述配置创建了一个连接工厂,指定了目的地,并定义了一个消息监听器容器,该容器会从队列中拉取消息并分发给消息监听器处理。 4. **消息的...
4. **灵活性**:Spring JMS 提供了多种类和接口,如 `MessageListener` 和 `DefaultMessageListenerContainer`,支持不同的消息消费模式,如同步和异步,满足不同场景需求。 5. **集成友好**:Spring 框架的整体...
Spring提供了`MessageListenerContainer`接口,允许我们定义监听JMS消息的策略,例如基于`DefaultMessageListenerContainer`的实现,它可以自动启动和停止消息监听。 接下来,JMS是Java平台的标准API,用于在分布式...