从WSO2 ESB版本4.8.1代理获取响应的问题

时间:2016-04-26 07:08:43

标签: wso2 wso2esb wso2carbon

创建了一个代理&amp;使用以下配置定位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的解决方案?

代理:

<?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>

2 个答案:

答案 0 :(得分:0)

如果您的请求是删除GET,则需要在发送调解员之前删除NO_ENTITY_BODY:<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>

答案 1 :(得分: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>