我试过注册一个JsonMessageConverter,但无济于事。
最好是看看你的企图并找出我们的问题。
现在我只能说你应该为发送和接收部分提供JsonMessageConverter
。
我刚刚测试了gs-messaging-rabbitmq
:
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
MessageConverter messageConverter;
.....
@Bean
MessageListenerAdapter listenerAdapter(Receiver receiver, MessageConverter messageConverter) {
MessageListenerAdapter adapter = new MessageListenerAdapter(receiver, "receiveMessage");
adapter.setMessageConverter(messageConverter);
return adapter;
}
@Bean
MessageConverter messageConverter() {
return new Jackson2JsonMessageConverter();
}
.....
System.out.println("Sending message...");
rabbitTemplate.setMessageConverter(messageConverter);
rabbitTemplate.convertAndSend(queueName, new Foo("Hello from RabbitMQ!"));
凡Receiver
已被更改为这个:
public void receiveMessage(Foo message) {
System.out.println("Received <" + message + ">");
latch.countDown();
}
所以,输出是:
Waiting five seconds...
Sending message...
Received <Foo{foo='Hello from RabbitMQ!'}>
当我们使用Foo
这样的:
@Override
public String toString() {
return "Foo{" +
"foo='" + foo + '\'' +
'}';
}
具有适当的获取器和设置器。