无法将参数传递到序列模板 - WSO2 ESB 4.8.1
Unable to pass parameters into Sequence Template - WSO2 ESB 4.8.1
我们正在尝试使用 WSO2 ESB 4.8.1 中的序列模板创建通用参数化序列以供重用。然而,序列模板从不接收从调用模板中介传递的参数。这是我们用于模板的相同配置,
<template xmlns="http://ws.apache.org/ns/synapse" name="test_template">
<sequence>
<log level="custom">
<property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="MESSAGE" expression="$func:message"></property>
</log>
</sequence>
</template>
...以及我们调用它的顺序...
<sequence xmlns="http://ws.apache.org/ns/synapse" name="template_test">
<log>
<property name="POSITION" value="CALLING_TEMPLATE"></property>
</log>
<call-template target="test_template">
<with-param name="message" value="Hello World!"></with-param>
</call-template>
</sequence>
日志文件中报告的值始终是 null
。谁能指出这是什么原因?
您必须将传递给模板的参数声明为 <parameter>
。
<template xmlns="http://ws.apache.org/ns/synapse" name="test_template">
<parameter name="message" />
<sequence>
<log level="custom">
<property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="MESSAGE" expression="$func:message"></property>
</log>
</sequence>
</template>
想象一下,这相当于一个方法签名,其中输入参数在括号内定义。
我们正在尝试使用 WSO2 ESB 4.8.1 中的序列模板创建通用参数化序列以供重用。然而,序列模板从不接收从调用模板中介传递的参数。这是我们用于模板的相同配置,
<template xmlns="http://ws.apache.org/ns/synapse" name="test_template">
<sequence>
<log level="custom">
<property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="MESSAGE" expression="$func:message"></property>
</log>
</sequence>
</template>
...以及我们调用它的顺序...
<sequence xmlns="http://ws.apache.org/ns/synapse" name="template_test">
<log>
<property name="POSITION" value="CALLING_TEMPLATE"></property>
</log>
<call-template target="test_template">
<with-param name="message" value="Hello World!"></with-param>
</call-template>
</sequence>
日志文件中报告的值始终是 null
。谁能指出这是什么原因?
您必须将传递给模板的参数声明为 <parameter>
。
<template xmlns="http://ws.apache.org/ns/synapse" name="test_template">
<parameter name="message" />
<sequence>
<log level="custom">
<property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="MESSAGE" expression="$func:message"></property>
</log>
</sequence>
</template>
想象一下,这相当于一个方法签名,其中输入参数在括号内定义。