我们正在尝试使用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
。谁能指出原因呢?
答案 0 :(得分:1)
您必须声明将参数作为<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>
想象一下这等同于方法签名,其中输入参数在括号内定义。