2015-02-17 101 views
0

我有一个实例,我需要实现一个代理服务,它接收一个SOAP消息,并将其转发给内部系统(SOAP),并将HTTP 200响应返回给原始服务器。
基本上,响应应该完全没有任何soap细节(WSDL中没有输出消息,我必须实现)。
这里是我到目前为止(它简单地接受请求&回声它作为响应返回):在wsO2 ESB上将SOAP请求转换为HTTP 200返回

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
    name="ExampleHttp200Return" 
    transports="http" 
    statistics="disable" 
    trace="disable" 
    startOnLoad="true"> 
    <target> 
     <inSequence> 
     <log level="full" separator=", - inSequence: received - "/> 
     <header name="To" action="remove"/> 
     <property name="RESPONSE" value="true" scope="default" type="STRING"/> 
     <property name="SC_ACCEPTED" value="false" scope="axis2"/> 
     <property name="HTTP_SC" value="200" scope="axis2"/> 
     <send/> 
     </inSequence> 
    </target> 
    <description/> 
</proxy> 

回答

0

如果你要发送回一个空响应,您可以添加在发送前调解:

<property name="messageType" scope="axis2" value="text/plain"/> 
<enrich> 
    <source type="inline"> 
     <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
      <soapenv:Header/> 
      <soapenv:Body> 
       <text xmlns="http://ws.apache.org/commons/ns/payload"/> 
      </soapenv:Body> 
     </soapenv:Envelope> 
    </source> 
    <target type="envelope"/> 
</enrich> 
+0

但是,返回一个空的肥皂信封。我希望它只返回一个HTTP 200(根本没有肥皂)。 – user2836244 2015-02-18 15:13:54

+0

我已更新我的回答 – 2015-02-18 19:32:32

+0

就是这样。我并不完全确定它是如何完全消除它似乎创造的肥皂包裹,但它确实如此。谢谢!! – user2836244 2015-02-18 20:53:21