我在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>
答案 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>