如何多次使用相同的有效负载工厂JSON

时间:2016-03-14 13:18:14

标签: json wso2 esb

我在WSO2项目的requestpayloadsequence文件中有一个有效负载工厂。我必须使用一些过滤器多次使用相同的有效负载工厂。目前我必须为每个过滤器重复相同的代码片段(如下所示)。有没有什么办法可以使用相同的有效负载工厂,而不会多次使用相同的代码。 有什么办法可以将此有效负载工厂设置为某个参数值。任何人都可以帮助如何实现这一目标。下面是我目前正在使用的有效负载图片代码。

<payloadFactory media-type="json">
                    <format> {
                        "1st": "$1",
                        "2nd": "$2",
                        "3rd": "$3",
                        "4th": "$4",
                         }
                </format>
                    <args>
                        <arg evaluator="xml" expression="get-property('1')"/>
                        <arg evaluator="xml" expression="get-property('2')"/>

                        <arg evaluator="xml" expression="get-property('3')"/>
                        <arg evaluator="xml" expression="get-property('4')"/>

                    </args>
</payloadFactory>

1 个答案:

答案 0 :(得分:0)

您可以使用序列模板:

<template xmlns="http://ws.apache.org/ns/synapse" name="PayloadTemplate">
    <parameter name="P1"/>
    <parameter name="P2"/>
    <parameter name="P3"/>
    <parameter name="P4"/>
    <sequence>
        <payloadFactory media-type="json">
            <format> {
                        "1st": "$1",
                        "2nd": "$2",
                        "3rd": "$3",
                        "4th": "$4",
                         }
                </format>
            <args>
                <arg evaluator="xml" expression="$func:P1"/>
                <arg evaluator="xml" expression="$func:P2"/>
                <arg evaluator="xml" expression="$func:P3"/>
                <arg evaluator="xml" expression="$func:P4"/>
            </args>
        </payloadFactory>
    </sequence>
</template>

在中介中调用此模板:

<call-template target="PayloadTemplate">
    <with-param name="P1" value="{get-property('WWW')}"/>
    <with-param name="P2" value="{get-property('XXX')}"/>
    <with-param name="P3" value="{get-property('YYY')}"/>
    <with-param name="P4" value="{get-property('ZZZ')}"/>
</call-template>