无法将参数传递到序列模板 - 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>

想象一下,这相当于一个方法签名,其中输入参数在括号内定义。