消息的消费者接收消息可以采用两种方式:
1、consumer.receive() 或 consumer.receive(int timeout);
2、注册一个MessageListener。
采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。后一种方式会注册一个监听器,当有消息到达的时候,会回调它的onMessage()方法。下面举例说明:
MessageConsumer comsumer = session.createConsumer(queue);
comsumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
// TODO Auto-generated method stub
try {
System.out.println(((TextMessage)message).getText());
} catch (Exception e) {
e.printStackTrace();
}
}
});
分享到:
相关推荐
在Spring中,实现异步消息监听器有三种方式:实现 javax.jms.MessageListener 接口、实现 Spring 的 SessionAwareMessageListener 和捆绑一个标准 POJO 到 Spring 的 MessageListenerAdapter 类上。这三种方法在消息...
在Spring框架中,监听器通常通过实现`MessageListener`接口或者使用`@RabbitListener`注解来定义。如果这个类中的bean无法被正确地注入,那么可能是由于配置问题或者依赖注入机制出现了故障。 `BeanUtil.java`可能...
public RedisMessageListenerContainer messageListenerContainer(RedisConnectionFactory factory, RedisMessageListener listener) { RedisMessageListenerContainer container = new ...
它包括了`JmsTemplate`、`MessageListenerContainer`等组件,可以简化消息的发送和监听。 9. **jta.jar**(Java Transaction API):如果你的应用需要在多个资源(如数据库和JMS)之间进行事务管理,那么JTA是必不...
<property name="messageListener" ref="messageListener"/> ``` 这里,我们创建了一个ConnectionFactory,指定了连接到ActiveMQ服务器的URL,然后定义了消息的目标(Queue),并配置了一个MessageListener...
<property name="messageListener" ref="messageListener"/> <bean id="messageListener" class="com.example.MessageListener"> <!-- 实现MessageListener接口 --> ``` 在`MessageListener`中,你需要实现`...
在Spring中,你可以通过定义一个Bean,将其类型设置为MessageListener,并配置MessageListenerContainer来启动监听器。 4. 使用Spring JmsTemplate发送消息: Spring的JmsTemplate提供了一个简单的方法来发送JMS...
其中,`MessageListener`是你自定义的消息监听器,需要实现`javax.jms.MessageListener`接口。 4. 编写消息监听器:在`MessageListener`类中,重写`onMessage`方法来处理接收到的消息。 5. 发送消息:使用`...
<property name="messageListener" ref="messageListener"/> <bean id="messageListener" class="com.example.MessageListener"/> ``` ```java public class MessageListener implements MessageListener { ...
public MessageListener messageListener() { return new MyMessageListener(); } @Bean public DefaultMessageListenerContainer listenerContainer() { DefaultMessageListenerContainer container = new ...
在这里,`destinationName`是你要监听的消息目的地(队列或主题),而`messageListener`是自定义的消息监听器类,它实现了`MessageListener`接口。 在代码中,你可以使用`JmsTemplate`发送消息,`MyMessageListener...
对于消息的消费,我们可以定义一个监听器容器(MessageListenerContainer),并注册一个实现 `MessageListener` 接口的类。下面是一个例子: ```xml <bean id="messageListenerContainer" class="org.spring...
public class MessageListener implements javax.jms.MessageListener { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println(...
6. 配置MessageListenerContainer:这负责启动和管理MessageListener,可以是`DefaultMessageListenerContainer`或`SimpleMessageListenerContainer`。 在"producer"这个文件中,我们可以预期包含的是消息生产者的...
<property name="messageListener" ref="messageListener"/> <bean id="messageListener" class="com.example.YourMessageListenerClass"/> ``` 这里,`destinationName`是你要监听的消息队列名称,`message...
private final MessageListener messageListener = new MessageListener(); ``` - **初始化成员变量**: - `ExecutorService executor`:创建一个可缓存线程池。 - `ListView<String> chatBox`:初始化聊天记录...
<property name="messageListener" ref="messageListener" /> <bean id="messageListener" class="com.example.MyMessageListener" /> ``` 这里定义了一个DefaultMessageListenerContainer,指定了之前配置的...
<property name="messageListener" ref="messageListener" /> <bean id="messageListener" class="com.example.MyMessageListener" /> ``` `MyMessageListener`是你自定义的类,实现了`javax.jms.Message...
<property name="messageListener" ref="messageListener" /> <bean id="messageListener" class="com.example.YourMessageListener" /> ``` 3. 编写消息监听器 消息监听器是处理接收到的消息的类,需要实现`...
- 将这个`MessageListener`类注入到Spring容器中,并与配置的`MessageListenerContainer`关联。 - 当消息到达时,`MessageListenerContainer`会自动调用`onMessage`方法,从而实现异步处理。 5. **测试与调试**:...