RabbitMQ キューからメッセージを読み取りたい > Service-Activator を使用してサービスを呼び出します。
関連する構成セクションは次のとおりです。
<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:タイプ [クラス org.springframework.integration.service.MessageExaminer] のターゲット オブジェクトには、メッセージを処理するための適格なメソッドがありません。
ここで何が間違っていますか?
しかし、これを単に ServiceMsg クラスのメソッドとして使用すると、うまくいきます:
public void seeMessage(String m)
{
System.out.println(m);
}
私の目標は、 Service-Activator メソッドでメッセージ自体、ペイロード、およびヘッダーを取得することです。