我知道这已经有一段时间了,但是我遇到了同样的问题,解决了这个问题,并希望在此给出一个明确的代码示例。
这是我的MessageListener
。这实现了onMessage(Message)
方法异步截取消息。然后
package com.package.amqp;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.support.converter.JsonMessageConverter;
import com.package.model.User;
public class TestListener implements MessageListener {
public void onMessage(Message message) {
JsonMessageConverter jmc = new JsonMessageConverter();
User u = (User)jmc.fromMessage(message);
System.out.println("received: " + u.getFirstName());
}
}
的消息在我的情况下使用标准JsonMessageConvertor
因为这是我messageConvertor
插入到我的rabbitTemplate
豆转换。
<bean id="rabbitConnectionFactory" class="org.springframework.amqp.rabbit.connection.SingleConnectionFactory">
<constructor-arg value="10.10.1.2"/>
<property name="username" value="guest"/>
<property name="password" value="guest"/>
</bean>
<bean class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="queueName" value="queue.helloWorld"/>
<property name="messageListener" ref="someListener"/>
</bean>
<bean id="someListener" class="com.package.amqp.TestListener"></bean>
<bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
</property>
</bean>
希望这可以帮助别人! Owen
如何使用MessageListener的service-activator instea接收消息? – luksmir 2013-07-18 10:48:04
@luksmir,我不熟悉Spring集成,但http://stackoverflow.com/questions/10351948/using-spring-integration-with-rabbitmq可能会帮助你? – 2013-07-22 22:15:30