WSO2 ESB:AxisFault:无协议

WSO2 ESB:AxisFault:无协议,wso2,axis2,wso2esb,Wso2,Axis2,Wso2esb,WSO2 ESB 4.6.0中的以下代理有问题: <proxy name="GetCapacity" transports="http https" startOnLoad="true" trace="disable"> <target> <inSequence> <xslt key="conf:ManageWorkforce/xslt/GetCapacity_Request.xsl"/> <se

WSO2 ESB 4.6.0中的以下代理有问题:

<proxy name="GetCapacity" transports="http https" startOnLoad="true" trace="disable">
  <target>
     <inSequence>
        <xslt key="conf:ManageWorkforce/xslt/GetCapacity_Request.xsl"/>
        <send>
           <endpoint key="Capacity"/>
        </send>
     </inSequence>
     <outSequence>
        <filter xpath="get-property('FAULT')">
           <then>
              <log level="full" separator=",">
                 <property name="trace" value="-------- FAULT ---------"/>
              </log>
              <xslt key="conf:ManageWorkforce/xslt/SoapFaultToStandardHeader.xsl"/>
              <header name="To" expression="get-property('ReplyTo')"/>
           </then>
           <else>
              <xslt key="conf:ManageWorkforce/xslt/GetCapacity_Response.xsl"/>
           </else>
        </filter>
        <send/>
     </outSequence>
     <faultSequence>
        <log level="full" separator=",">
           <property name="trace" value="-------- FAULT SEQUENCE -------"/>
        </log>
        <property name="RESPONSE" value="true"/>
        <header name="To" expression="get-property('ReplyTo')"/>
     </faultSequence>
  </target>
</proxy>

当我使用soapUI调用它并且服务抛出SoapFault(FAULT属性为TRUE)时,WSO2中会发生以下错误:

[2014-01-20 19:13:30,764] ERROR - Axis2Sender Unexpected error sending message back
org.apache.axis2.AxisFault: no protocol: 
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:453)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:277)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
    at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:161)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:282)
    at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:92)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:230)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:238)
    at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:167)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
    at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:456)
    at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:316)
    at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:329)
    at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
    at org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
    at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:95)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:154)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:434)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:219)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.MalformedURLException: no protocol: 
    at java.net.URL.<init>(URL.java:567)
    at java.net.URL.<init>(URL.java:464)
    at java.net.URL.<init>(URL.java:413)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:422)
    ... 31 more
[2014-01-20 19:13:30764]错误-Axis2 Sender发送回消息时出现意外错误
org.apache.axis2.AxisFault:无协议:
位于org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
位于org.apache.axis2.transport.http.commonHttpTransportSender.writeMessageWithCommons(commonHttpTransportSender.java:453)
位于org.apache.axis2.transport.http.commonHttpTransportSender.invoke(commonHttpTransportSender.java:277)
位于org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
位于org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:161)
位于org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:282)
位于org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:92)
位于org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
位于org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
位于org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:230)
位于org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)
位于org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)
在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)上
位于org.apache.synapse.core.axis2.DynamicAxisOperation$dynamicCopeOptionClient.send(DynamicAxisOperation.java:238)
位于org.apache.synapse.core.axis2.DynamicAxisOperation$dynamiccopeoptionclient.executeImpl(DynamicAxisOperation.java:167)
位于org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
位于org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:456)
位于org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
位于org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:316)
位于org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:329)
位于org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
位于org.apache.synapse.endpoints.IndirectEndpoint.send(IndirectEndpoint.java:54)
位于org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:95)
位于org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
位于org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
位于org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:154)
在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)上
位于org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:434)
位于org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:219)
位于org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
运行(Thread.java:662)
原因:java.net.MalformedURLException:无协议:
位于java.net.URL。(URL.java:567)
在java.net.URL.(URL.java:464)
在java.net.URL.(URL.java:413)
位于org.apache.axis2.transport.http.commonHttpTransportSender.writeMessageWithCommons(commonHttpTransportSender.java:422)
... 还有31个

我做错了什么?

根据错误,似乎是“to”标题不正确。请您尝试删除“收件人”标题并查看。在您的配置中,已使用“ReplyTo”属性添加“To”标题。因此,请将以下内容添加到故障序列中

<header name="To" action="remove"/>

此外,最好启用调试日志,以解决问题。这将在线路上显示消息。请从log4j.properties文件中启用以下两个属性,该文件位于/repository/conf目录

log4j.logger.org.apache.synapse.transport.nhttp.wire=DEBUG log4j.logger.org.apache.synapse.transport.nhttp.headers=DEBUG

在答案中添加更多内容,您已经从“ReplyTo”中复制了“To”标题。您可以按如下方式记录“ReplyTo”的值,以检查它是否确实不正确

<log level="custom"><property name="RelyTo" expression="get-property('ReplyTo')"/></log>


谢谢您的回答。我已将
删除到
,但现在发生了以下情况:
org.apache.axis2.AxisFault:To和MessageContext.TRANSPORT\u OUT属性都为空,因此无处发送
Hmm我们是否验证,抱歉。。我在回答中又加了一些。请查收。最好验证您的“ReplyTo”值。或者从out序列中删除属性,然后查看。我已删除。错误与上面第一条注释中描述的相同。SoapFault之后:
To=http://www.w3.org/2005/08/addressing/anonymous,From=,Action=,ReplyTo=,FaultTo=
。然后,我将
删除到