Java 如何在spring amqp请求/回复消息中设置回复的内容类型?
下面是Java 如何在spring amqp请求/回复消息中设置回复的内容类型?,java,rabbitmq,amqp,spring-amqp,spring-rabbit,Java,Rabbitmq,Amqp,Spring Amqp,Spring Rabbit,下面是股票交易示例的说明,该示例概述了如何在spring amqp中使用请求/回复消息: 查看ServerHandler类,它是一个消息驱动的POJO,碰巧也能够发送回复消息。。。我看不到一个地方可以为内容类型注入MessageProperties 我已经调整了这个示例,我想返回一条伪装成简单字符串的xml消息。。。但是当ServerHandler将我的回复发布到RabbitMQ时,它看起来像: properties: correlation_id: 9873f420-89e5-465d
股票交易
示例的说明,该示例概述了如何在spring amqp
中使用请求/回复消息:
查看ServerHandler
类,它是一个消息驱动的POJO,碰巧也能够发送回复消息。。。我看不到一个地方可以为内容类型注入MessageProperties
我已经调整了这个示例,我想返回一条伪装成简单字符串的xml消息。。。但是当ServerHandler
将我的回复发布到RabbitMQ时,它看起来像:
properties:
correlation_id: 9873f420-89e5-465d-aa60-ec9281ee48ae
priority: 0
delivery_mode: 2
headers:
__TypeId__: java.lang.String
content_encoding: UTF-8
content_type: application/json
payload:
"<?xml version='1.0' encoding='UTF-8'?>\n<stuff></stuff>
如果您说您正在接收JSON,但希望返回XML,则可以使用自定义的
MessageConverter
,在入站端委托给JsonMessageConverter
,在出站端委托给SimpleMessageConverter
;它还可以根据需要设置内容类型
消息属性。谢谢Gary,你能告诉我spring文档吗,或者提供一个示例,说明如何在侦听器容器中配置单独的入站和出站转换器
?你不能直接;我建议你做点像这样的事谢谢!一旦我将其设置为AsymmetricMessageConverter
,实际上就不再需要设置内容类型,因为出站消息的SimpleMessageConverter
。。已自行将其设置为text/plain
。但遗憾的是,我仍然在启动convertSendAndReceive
的客户端上不断收到null
回复,即使消息已发送到响应/回复队列。您是否介意也看一看这封邮件,因为我的根本问题仍然没有消失:
<listener-container
concurrency="5"
connection-factory="connectionFactory"
message-converter="jsonMessageConverter"
xmlns="http://www.springframework.org/schema/rabbit">
<listener ref="serverHandler" method="handleMessage" queue-names="#{queue.name}" />
</listener-container>