2016-08-29 12 views
0

MessagePropertiesを署名に追加すると、handleMessageメソッドはキューからメッセージを取得しません。 MessagePropertiesがなければ正常に動作します。Spring amqp:MessageListenerAdapterでMessagePropertiesを読み取るにはどうすればいいですか?

MessageListenerAdapterのhandleMessageでMessagePropertiesを取得するにはどうすればよいですか?

public class EventMessageAdapter { 

    public void handleMessage(MessageProperties messageProperties, Event event) { 
    ... 
    String id = messageProperties.getHeaders().get("key"); 
} 

答えて

2

リスナーアダプタでは実行できません。

最新のスタイル@RabbitListenerのメカニズムdocs hereを使用してください。

あなたは message.getMessageProperties()を経由して、すべてのメッセージプロパティを取得することができます後者の場合には、様々な署名...

@RabbitListener(queues = "foo") 
public void foo(Event event, @Header("foo") String fooHeader, 
      @Header("bar") Integer barHeader) {...} 

または

@RabbitListener(queues = "bar") 
public void bar(Event event, Message message) {...} 

を使用することができます。

container factoryが必要です。スターターがクラスパス上にあれば、自動的にスプリングブートが作成されます。

関連する問題