【问题标题】:wso2 esb PayloadFactory how to support arraywso2 esb PayloadFactory如何支持数组
【发布时间】:2015-11-22 14:15:50
【问题描述】:

在 ESB 中,我们可以使用 payloadFactory 创建请求。但是payload factory是预先配置好的json格式,将占位符替换为value。 如果请求中包含数组,则非常困难。有什么建议吗? 负载工厂示例

<payloadFactory media-type="json">
            <format>
             {
                "tableId":"$1",
                "min":"$2",
                "max":"$3"
            }
            </format>
            <args>
                <arg evaluator="xml" expression="$func:tableId"/>
                <arg evaluator="xml" expression="$func:min"/>
                <arg evaluator="xml" expression="$func:max"/>
            </args>
        </payloadFactory>

【问题讨论】:

    标签: scripting wso2 wso2esb esb


    【解决方案1】:

    就像 Rajeev 已经提到的,这可以使用脚本中介来实现。我这样做是为了实现分页功能,以便从包中的数据库中读取全部内容。

    这是我所做的一个示例,希望对您也有帮助。

    <script language="js">print("Start JS");
            var pageSize = 500;
            var pagesRest = mc.getProperty("result_count") % pageSize;
            var pages = ((mc.getProperty("result_count")-pagesRest)/pageSize)+1;
            var xmlResponse = mc.getPayloadXML();
            var rowCount= mc.getProperty("result_count");
            print("rowCount:  " + rowCount+"    pages:"+pages);
            var rowData = {
                rows : []
            };
            var resultCount=0;
    
            for(var i=1;i&lt;=pages;i++)
            {
                print("Building page "+i);
                rowData.rows[i] = {};
                rowData.rows[i].from = "" + (i-1)*pageSize ;
                rowData.rows[i].to= "" + (pageSize * i);
                rowData.rows[i].orderBy = "caseid";
    
                resultCount+=pageSize;
            }
    
            mc.setPayloadJSON(rowData);
    

    问候 马丁

    【讨论】:

      【解决方案2】:

      对于更动态/复杂的有效负载修改,您可以使用Script Mediator,您可以在其中编写一些 JavaScript 代码来构建有效负载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 2017-10-19
        • 2014-06-16
        • 2015-03-23
        • 1970-01-01
        • 1970-01-01
        • 2012-09-16
        相关资源
        最近更新 更多