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

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

问题描述

我有一个单独的代理(在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.

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

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

WARN-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查看响应)
  • property "OUT_ONLY" is not set to true in the proxy that put the message in the MessageStore
  • The value of http status code (for the response from your backend service) is 200 or 500 (use tcpmon between ESB and your backend service to have a look to the response)

当您存储消息或消息处理器从存储中将消息出队时,会记录警告未收到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天全站免登陆