/ / Parameter können nicht an Sequenzvorlage übergeben werden - WSO2 ESB 4.8.1 - wso2, wso2esb

Parameter können nicht in Sequenzvorlage übergeben werden - WSO2 ESB 4.8.1 - wso2, wso2esb

Wir versuchen generisch parametrisiert zu erstellenSequenzen zur Wiederverwendung unter Verwendung von Sequenzvorlagen in WSO2 ESB 4.8.1. Die Sequenzvorlage empfängt jedoch nie den vom Vermittler der Aufrufvorlage übergebenen Parameter. Hier ist die gleiche Konfiguration, die wir für die Vorlage verwenden,

<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>

... und die Reihenfolge, von der wir es nennen ...

<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>

Der in der Protokolldatei angegebene Wert ist immer null. Kann jemand auf den Grund dafür hinweisen?

Antworten:

1 für die Antwort № 1

Sie müssen das Argument, das an die Vorlage übergeben wird, als <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>

Stellen Sie sich dies als Äquivalent zu einer Methodensignatur vor, bei der die Eingabeargumente in Klammern stehen.