当前位置: 首页 > 知识库问答 >
问题:

当header:Content-Type不符合JMS规范时,Mule:JMS队列不响应

何松
2023-03-14

目前,我正在开发一个代理服务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>

*在这里可以观察到哪个适当地生成临时队列*

警告2014-09-17 11:07:50,532[Dispatcher-Channel-2]org.mule.transport.JMS.jmsMessageUtils:header:Content-Type不符合JMS规范(第3.5.1,3.8.1.1)。它会在您的应用程序和其他应用程序中造成问题。请更新您的应用程序代码以更正此问题。Mule将其重命名为Content_Type

信息2014-09-17 11:07:59,790[[dynamo-proxyrest-template.xml].responsableHttpConnector.receiver.02]org.mule.api.processor.loggerMessageProcessor:有效载荷post 3 es:{NullPayload}

尽管如此,我还是无法检索到响应消息。

我很感激你的帮助

共有1个答案

郎和志
2023-03-14

在我的特殊情况下,我通过从出站JMSendpoint移除MIME类型设置来解决此错误。由于此设置,Mule会自动添加Content-Type HTTP头。

 类似资料:
  • 我在Spring集成项目中使用Sleuth在JMS消息中传递跟踪头。IBM MQ用于队列管理器。该配置在功能上运行良好。然而,所有勇敢的头都与JMS规范不兼容?当IBM MQ客户机库抛出关于此的警告时- 警告消息: JMS有效负载: 侦探中是否有选项可以更改JMS的标题命名约定?类似于行李命名约定?希望我没有遗漏留档中的某些内容。 编辑:添加以下日志级别配置来抑制警告异常

  • 我正在使用编写一个JMS使用者来使用来自ActiveMQ Artemis代理的消息。我正在研究3个属性的行为:、和。 预期的行为是,当队列中的负载增加时,消费者应该向上伸缩到,而当负载减少时,消费者应该向下伸缩到。 但是和ActiveMQ Artemis不会发生这种情况。当队列中没有消息时,使用者计数不会减少,而是保留所有。 我正在使用spring DMLC容器

  • 因此,我使用Spring integration链接JMS和ActiveMQ,如下所示:- 如何使其工作,以便发送到此队列并从中接收消息?请帮忙。

  • 要求:我们需要从JMS队列(由另一个应用程序发布)中检索一条消息,并将该消息持久保存在我们的JMS队列中。需要整个流是事务性的,所以如果消息不能持久化到下游JMS队列中,则不应该确认从上游JMS队列接收到的消息。我的配置如下 在这种情况下,我需要使用JmsTransactionManager,还是应该高于配置就足够了。我们可以处理重复的消息,所以我相信我们不需要XA事务。

  • 解决方案#3:使用AWS SQS标准队列和AWS ElasticCache(Redis或Memcached)。对于每条消息,“messageID”字段将保存在缓存服务器中,并在以后检查是否重复。存在意味着此消息已被处理。(顺便说一下,“MessageID”在缓存服务器中应该存在多长时间。AWS SQS文档没有提到消息可以重复到多长时间。)

  • 目前我有一个Weblogic 10R3开发的Java EE应用程序主机,我有兴趣测试1个消息驱动Bean。问题是我无法访问Bean正在侦听的外部JMS服务器,以下是MDB代码: 我的计划是,Bean将通过JNDI查找队列,并且我确实可以访问Weblogic托管服务器。因此,我可以删除外部JMS服务器,然后添加一个本地JMS队列和包含确切JNDI名称的connectionFactory。因此,隔离外