目前正在开发代理服务REST,以便在使用JMS的REST服务操作(更新,删除,插入)中包含有保证的交付。在其中一个流程中我有:
<flow name="name" doc:name="name">
...
<jms:outbound-endpoint exchange-pattern="request-response" queue="**crear-cuenta-jms**" connector-ref="JMSConnector" doc:name="JMS" mimeType="application/json"/>
<logger message="payload is : #[payload]" level="INFO" doc:name="Logger"/>
....
</flow>
*此流程接收json文档,然后将其发送到队列*
在流队列侦听器中:
<flow name="name2" doc:name="name2">
<jms:inbound-endpoint doc:name="JMS" connector-ref="JMSConnector" exchange-pattern="request-response" queue="**crear-cuenta-jms**" mimeType="application/json"/>
<set-payload value="Chevere" doc:name="Set Payload"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
当我运行此流程时会生成警告
WARN 2014-09-17 11:07:49,379 [[dynamo-proxyrest-template.xml] .responsableHTTPConnector.receiver.02] org.mule.transport.jms.JmsMessageUtils:标题:Content-Type是不符合JMS规范(第3.5.1,3.8.1.1节)。它会导致您和其他应用程序出现问题。请更新您的应用程序代码以更正此问题。 Mule将其重命名为Content_Type
INFO 2014-09-17 11:07:50,524 [Dispatcher-Channel-2] org.mule.transport.jms.JmsReplyToHandler:回复消息发送至:direct://amq.direct/TempQueueb4c14e85-7e1b-4e45- 882f-531c09e0ec40 / TempQueueb4c14e85-7e1b-4e45-882f-531c09e0ec40?routingkey ='TempQueueb4c14e85-7e1b-4e45-882f-531c09e0ec40'&amp; exclusive ='true'&amp; autodelete ='true'with correlationID:ID:78836ef7-01f5- 38c1-9612-76bae28fadc0
*在这里可以观察到哪个生成了适当的临时队列*
WARN 2014-09-17 11:07:50,532 [Dispatcher-Channel-2] org.mule.transport.jms.JmsMessageUtils:Header:Content-Type不符合JMS规范(sec.3.5.1,3.8 .1.1)。它会导致您和其他应用程序出现问题。请更新您的应用程序代码以更正此问题。 Mule将其重命名为Content_Type
INFO 2014-09-17 11:07:59,790 [[dynamo-proxyrest-template.xml] .responsableHTTPConnector.receiver.02] org.mule.api.processor.LoggerMessageProcessor: payload post 3 es:{ NullPayload}
尽管如此,我无法检索回复消息。
我感谢任何帮助
答案 0 :(得分:0)
在我的特定情况下,我通过从出站JMS端点删除 MIME类型设置来解决此错误。由于此设置,Mule会自动添加 Content-Type HTTP标头。