2016-04-26 71 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"/>