2013-05-05 62 views
1

我以这种方式使用rabbitTemplate读消息

<bean id="rabbitConnFactory" class="org.springframework.amqp.rabbit.connection.SingleConnectionFactory"> 
    <constructor-arg> 
     <value>localhost</value> 
    </constructor-arg> 
</bean> 

<!-- Spring AMQP Template --> 
<bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate"> 
    <property name="connectionFactory" ref="rabbitConnFactory" /> 
</bean> 

<!-- Spring AMQP Admin --> 
<bean id="rabbitAdmin" class="org.springframework.amqp.rabbit.core.RabbitAdmin"> 
    <constructor-arg ref="rabbitConnFactory" /> 
</bean> 

发送到交换:

rabbitTemplate.setExchange(exchange); 
rabbitTemplate.setQueue(exchange);    //? 
Object msg = rabbitTemplate.receiveAndConvert(); 
return msg; 

(I:

rabbitTemplate.setExchange(exchange); 
rabbitTemplate.convertAndSend(message); 

从交换阅读需要设置交换运行时间,因为我从数据库中得到它)

但是msg总是null

回答

0

根据documentation如果队列中没有任何东西,receiveAndConvert方法可以返回null