如何根据WSO2 ESB中的请求头有条件地设置messageType属性?

时间:2013-10-11 20:17:55

标签: wso2 wso2esb

有没有办法根据请求标头动态设置messageType属性?

我可以在insequence中读取请求标头(transport,accept)但是如何根据accept值使用其值来有条件地设置messageType属性?有没有办法达到这个要求?

我正在运行ESB版本4.7.0。

2 个答案:

答案 0 :(得分:2)

这可以使用switch mediator完成。 以下是示例配置。

<switch source="$trp:Accept">
    <case regex=".*json.*">
             <property name="messageType" value="application/json" scope="axis2"/>
    </case>
    <case regex=".*application/xml.*">
            <property name="messageType" value="application/xml" scope="axis2"/>
    </case>
    <default>
          <property name="messageType" value="text/xml" scope="axis2"/>   
    </default>
 </switch>

答案 1 :(得分:0)

这可以通过Class mediator或Switch Mediator实现。您可以使用类介体来获得更多控制。 This link提供了有关使用switch mediator的详细信息。使用属性介体根据switch case设置值。