来自属性的WSO2 ESB有效负载
我正在尝试从属性内容创建有效负载:来自属性的WSO2 ESB有效负载,wso2,wso2esb,Wso2,Wso2esb,我正在尝试从属性内容创建有效负载: <payloadFactory media-type="xml"> <format>$1</format> <args> <arg evaluator="xml" expression="get-property('Response')"/> </args> </payloadFactory> $1 WSO2 ESB不接受此有效负载
<payloadFactory media-type="xml">
<format>$1</format>
<args>
<arg evaluator="xml" expression="get-property('Response')"/>
</args>
</payloadFactory>
$1
WSO2 ESB不接受此有效负载格式。我能做些什么来实现这一点?您不能为此使用有效负载工厂。它需要这样一个包装XML标记
<payloadFactory media-type="xml">
<format><Root>$1</Root></format>
<args>
<arg evaluator="xml" expression="get-property('Response')"/>
</args>
</payloadFactory>
$1
.
是一个类似的样本。可能是因为“反应”克洛维斯的类型。
我正在使用这个,没有发现任何问题
<property description="requestBk" expression="json-eval($.)" name="requestBk" scope="default" type="STRING"/>
<payloadFactory media-type="json">
<format>$1</format>
<args>
<arg evaluator="xml" expression="$ctx:requestBk"/>
</args>
</payloadFactory>
然后,无论何时需要原始有效负载,都可以使用increment mediator
将消息正文替换为该属性值,如下所示:
<enrich>
<source clone="false" type="property" property="ORIGINAL_PAYLOAD"/>
<target action="replace" type="body"/>
</enrich>
为什么要使用PayloadFactory进行此操作?如果属性类型为OmeElement,则可以使用Enrich mediator并用属性替换信封(或正文)。谢谢Namal。这对我的发展非常有用
<enrich>
<source clone="false" type="body"/>
<target action="replace" type="property" property="ORGINAL_PAYLOAD"/>
</enrich>
<enrich>
<source clone="false" type="property" property="ORIGINAL_PAYLOAD"/>
<target action="replace" type="body"/>
</enrich>