来自属性的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>