消息处理器中定义的序列没有收到响应 [英] Sequence defined in the Message Processor doesn't receive the response

查看:26
本文介绍了消息处理器中定义的序列没有收到响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个单独的代理(在 WSO2ESB4.8.1 中)将消息发送到消息存储(使用 WSO2MB 2.2.0 配置)然后是处理器将消息发送到后端,后端接收消息,但是来自后端的响应没有返回到处理器中定义的序列,Seq_IfcFileCheckinResponse.

I have a separate proxy (in WSO2ESB4.8.1) which sends the message to the message store (which is configured with WSO2MB 2.2.0) and then the processor sends the message to the backend and backend receives the message, but the response from backend doesn't come back to the defined sequence, Seq_IfcFileCheckinResponse in the processor.

我的后端是休息服务,我正在发送一个 json 请求.我注意到 esb 控制台中有以下警告消息,

My backend is rest service and I am sending a json request. I noticed following warning message in esb console,

警告 - JmsConsumer [JMSMessageStore-C-1].没有收到 javax.jms.ObjectMessage

WARN - JmsConsumer [JMSMessageStore-C-1]. Did not receive a javax.jms.ObjectMessage

以下消息存储和处理器的配置,

Following configurations for message store and processor,

 <messageStore class="org.apache.synapse.message.store.impl.jms.JmsStore"
                 name="JMSMessageStore">
      <parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter>
      <parameter name="store.jms.password">admin</parameter>
      <parameter name="java.naming.provider.url">repository/conf/jndi.properties</parameter>
      <parameter name="store.jms.connection.factory">QueueConnectionFactory</parameter>
      <parameter name="store.jms.username">admin</parameter>
      <parameter name="store.jms.destination">IfcQueue</parameter>
      <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   </messageStore>

   <messageProcessor class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor"
                     name="JMSMessageProcessor"
                     targetEndpoint="bimserverendpoint"
                     messageStore="JMSMessageStore">
      <parameter name="message.processor.reply.sequence">Seq_IfcFileCheckinResponse</parameter>
      <parameter name="client.retry.interval">5000</parameter>
      <parameter name="max.delivery.attempts">2</parameter>
      <parameter name="interval">1000</parameter>
      <parameter name="message.processor.fault.sequence">ErrorSeq_IfcFileCheckinResponserSeq</parameter>
      <parameter name="is.active">true</parameter>
   </messageProcessor>

推荐答案

你应该验证一下:

  • 在将消息放入 MessageStore 的代理中,属性OUT_ONLY"未设置为 true
  • http 状态码的值(来自后端服务的响应)是 200 或 500(在 ESB 和后端服务之间使用 tcpmon 来查看响应)

当您存储消息或消息处理器将其从存储中取出时,会记录警告未收到 javax.jms.ObjectMessage"?(停用您的消息处理器并调用将消息存储在商店中的代理)

The warning "Did not receive a javax.jms.ObjectMessage" is logged when you store the message or when the message processor dequeue it from the store ? (deactivate your message processor and call your proxy that store the message in the store)

这篇关于消息处理器中定义的序列没有收到响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆