2016-04-26 70 views
0

使用以下配置创建代理&目标inSequence。该代理应该返回具有在有效载荷中配置的内容的响应,即(<status>01SUCCESS</status>)。如预期的那样,在wso2 4.9.0中的响应是<status>01SUCCESS</status>。使用的客户端是Apache HTTP Client。但同样不返回在wso2 esb中的响应4.8.1虽然状态是200。在这两种情况下,Java版本都是1.7.0_79。 请提出适用于WSO2 ESB 4.8.1的任何解决方案?从WSO2 ESB版本4.8.1获得响应的问题代理

代理:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="buildResponse" 
     transports="https,http" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target inSequence="buildResponse" faultSequence="fault"/> 
    <description/> 
</proxy> 

顺序:

<?xml version="1.0" encoding="UTF-8"?> 
<sequence name="buildResponse" xmlns="http://ws.apache.org/ns/synapse"> 
    <property name="prop" scope="default" type="STRING" value="PROP"/> 
    <log> 
     <property expression="get-property('prop')" name="prop" xmlns:ns="http://org.apache.synapse/xsd"/> 
    </log> 
    <payloadFactory media-type="xml"> 
     <format> 
      <status xmlns="">01SUCCESS</status> 
     </format> 
    </payloadFactory> 
    <log> 
     <property expression="$body" name="body" xmlns:ns="http://org.apache.synapse/xsd"/> 
    </log> 
    <header action="remove" name="To" scope="default"/> 
    <property name="RESPONSE" scope="default" type="STRING" value="true"/> 
    <send/> 
</sequence> 

回答

0

如果请求是HTTP POST ,该属性在序列中是必需的,即使我们为HTTP GET请求包含也没有任何问题。

<property name="messageType" value="text/xml" scope="axis2" type="STRING"/> 

下面的顺序配置适用于HTTP GET和POST请求;因为POST请求所需的属性也包含在配置中。

<?xml version="1.0" encoding="UTF-8"?> 
    <sequence name="buildResponse" xmlns="http://ws.apache.org/ns/synapse"> 
     <property name="prop" scope="default" type="STRING" value="PROP"/> 
     <log> 
      <property expression="get-property('prop')" name="prop" xmlns:ns="http://org.apache.synapse/xsd"/> 
     </log> 
     <payloadFactory media-type="xml"> 
      <format> 
       <status xmlns="">01SUCCESS</status> 
      </format> 
     </payloadFactory> 
     <log> 
      <property expression="$body" name="body" xmlns:ns="http://org.apache.synapse/xsd"/> 
     </log> 
     <property name="messageType" value="text/xml" scope="axis2" type="STRING"/> 
     <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/> 

     <header action="remove" name="To" scope="default"/> 
     <property name="RESPONSE" scope="default" type="STRING" value="true"/> 
     <send/> 
    </sequence> 
0

如果你的要求是删除一个GET,你需要之前删除NO_ENTITY_BODY派调解员:<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>