URL重写介体WSO2 ESB

时间:2012-06-07 09:21:17

标签: wso2 wso2esb

我希望每当用户输入http://localhost:8280/services/Facebook/sea时,实际请求应为http://localhost:8280/services/Facebook/search?q=jack。这是我的代理服务Facebook的synapse.xml配置的一部分。但它不起作用,配置有什么问题?

<proxy name="Facebook" transports="https http" startOnLoad="true" trace="disable">
        <target>
            <endpoint>
                <address uri="http://graph.facebook.com"/>
            </endpoint>
            <inSequence>
                <rewrite>
                    <rewriterule>
                        <action value="search?q=jack" regex="sea" type="replace" fragment="host"/>
                    </rewriterule>
                </rewrite>
                <log level="full"/>
            </inSequence>
            <outSequence>
                <send/>
            </outSequence>
        </target>
    </proxy>

1 个答案:

答案 0 :(得分:0)

需要替换的部分位于URL的路径中。所以你应该将fragment属性设置为“path”。应使用单独的操作设置查询部分:

        <rewrite>
             <rewriterule>
                <action value="search" regex="sea" type="replace" fragment="path"/>
                <action value="q=jack" type="set" fragment="query"/>
             </rewriterule>
        </rewrite>