我想从 RabbitMQ 队列中读取消息 > 使用服务激活器来调用服务。
相关的配置部分是:
<int-amqp:inbound-channel-adapter channel="fromRabbit" queue-names="si.test.queue" mapped-request-headers="whatever"
connection-factory="connectionFactory" />
<int:service-activator input-channel="fromRabbit" output-channel="whatever"
ref="msgService" method="checkMsg"/>
<bean id="msgService" class="com.whatever.MsgService"/>
MsgService 类是:
public class MsgService{
//Does not work!
public void checkMsg( @Payload String s) {
System.out.println("The Payload is: " +s);
}
}
但我收到以下错误消息:
... 原因:java.lang.IllegalArgumentException:[class org.springframework.integration.service.MessageExaminer] 类型的目标对象没有符合条件的消息处理方法。
我在这里做错了什么?
但是,如果我只是将其用作 ServiceMsg 类中的一种方法 - 那行得通:
public void seeMessage(String m)
{
System.out.println(m);
}
我的目标是在 Service-Activator 方法中获取消息本身、有效负载和标头。