我有一个代理,它在WSO2 ESB4.6.0中调用另一个本地代理。基本上,定义是:
<proxy name="Proxy1" >
<target>
<inSequence>
<xslt/>
<header name="Action" value="issueActivity" />
<send>
<endpoint>
<address uri="http://localhost:8280/services/Proxy2" format="soap11"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<filter xpath="not(get-property('FAULT'))">
<xslt/>
</filter>
<send />
</outSequence>
</target>
</proxy>
<proxy name="Proxy2">
<target>
<inSequence>
<xslt />
<property name="DISABLE_CHUNKING" value="true" scope="axis2"/>
<send>
<endpoint key="Inbound" />
</send>
</inSequence>
<outSequence>
<filter xpath="get-property('FAULT')">
<then>
<sequence key="DefaultErrorSequence" />
<header name="To" action="remove" />
</then>
<else>
<property name="Content-Encoding" scope="transport" action="remove"/>
<xslt/>
</else>
</filter>
<send />
</outSequence>
</target>
</proxy>在几乎所有的调用中,流都很好地工作,但是当Proxy1试图调用Proxy2时,这个错误会周期性地出现在日志中。
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:03:35,431] WARN {org.apache.synapse.transport.passthru.TargetHandler} - Receiving response while the handler is in an inconsistent state REQUEST_HEAD
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:03:35,432] ERROR {org.apache.synapse.transport.passthru.util.RelayUtils} - Error while building Passthrough stream
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204)
at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154)
[...]在日志中错误的末尾:
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:04:35,435] WARN {org.apache.synapse.transport.passthru.TargetHandler} - Connection time out while in state: REQUEST_DONE
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:04:35,436] WARN {org.apache.synapse.FaultHandler} - ERROR_CODE : 101507
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:04:35,436] WARN {org.apache.synapse.FaultHandler} - ERROR_MESSAGE : Error in Sender
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:04:35,437] WARN {org.apache.synapse.FaultHandler} - ERROR_DETAIL : Error in Sender
TID: [0] [ESB] TID: [0] [ESB] [2014-05-08 12:04:35,437] WARN {org.apache.synapse.FaultHandler} - ERROR_EXCEPTION : null根据WSO2文档,错误101507表示Connection canceled。
问题是这个错误的原因是什么?是客户端还是服务器的问题?
更新
显然,错误的原因与以下问题中描述的相同:WSO2 ESB unknown error code 102511
发布于 2014-05-12 04:57:44
在写入查询时,是否在操作部分启用返回请求状态复选框?这可能会导致problem..Try .
发布于 2014-05-24 05:18:46
总结到目前为止的所有评论,我认为第一个成果是,当取代Proxy1->Proxy2体系结构时,将Proxy2更改为序列并使用序列中介器调用它们,而不是使用发送中介器调用它们时,问题就解决了。这是正确的,但是由于我们需要有Proxy1->Proxy2架构,我认为将Proxy1的"outSequence“定义为Proxy1的"inSequence”中的接收序列,并使用带有Proxy2端点的发送中介将其发送到Proxy2将是解决方案。
https://stackoverflow.com/questions/23550237
复制相似问题