Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spring amqp请求/回复消息中设置回复的内容类型?_Java_Rabbitmq_Amqp_Spring Amqp_Spring Rabbit - Fatal编程技术网

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>