我如何在 wso2 ESB/EI 中向我的地址端点添加值
how i can add values to my Adress endpoint in wso2 ESB/EI
我想动态添加值到 wso2 代理中的地址端点 ESB/EI
<address uri="mqtt:/SampleProxy?mqtt.server.host.name=thingsboard.cloud&mqtt.server.port=1883&mqtt.client.id=esb.test.sender&mqtt.topic.name=v1/devices/me/telemetry&mqtt.subscription.qos=0&mqtt.blocking.sender=true&mqtt.subscription.username=25416990;">
举个例子,我想在端点末尾添加“测试”,我该怎么做?
对于类似的问题,但通过向 rabbitmq 发送消息,我创建了模板,我在其中动态设置了 exchangeName 和 routingKey。以同样的方式,您可以创建自己的模板。您需要创建名为“To”的 Header 并使用 XPATH concate 有趣的地址端点,对于动态值,您只需使用 $func:{参数名称}
如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<template xmlns="http://ws.apache.org/ns/synapse" name="rabbitmq.sender">
<parameter name="exchangeName"/>
<parameter name="routingKey"/>
<sequence>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<header name="To"
scope="default"
expression="concat('rabbitmq:/?rabbitmq.connection.factory=CachedRabbitMQConnectionFactory&rabbitmq.exchange.name=',$func:exchangeName,'&rabbitmq.queue.routing.key=',$func:routingKey)"/>
<send/>
</sequence>
</template>
要使用它,需要 call-template 调解器。在括号中,您可以放置表达式,如下所示:
<call-template target="send.rabbitmq">
<with-param name="exchangeName" value="test"/>
<with-param name="routingKey" value="{get-property('testValue')}"/>
</call-template>
我想动态添加值到 wso2 代理中的地址端点 ESB/EI
<address uri="mqtt:/SampleProxy?mqtt.server.host.name=thingsboard.cloud&mqtt.server.port=1883&mqtt.client.id=esb.test.sender&mqtt.topic.name=v1/devices/me/telemetry&mqtt.subscription.qos=0&mqtt.blocking.sender=true&mqtt.subscription.username=25416990;">
举个例子,我想在端点末尾添加“测试”,我该怎么做?
对于类似的问题,但通过向 rabbitmq 发送消息,我创建了模板,我在其中动态设置了 exchangeName 和 routingKey。以同样的方式,您可以创建自己的模板。您需要创建名为“To”的 Header 并使用 XPATH concate 有趣的地址端点,对于动态值,您只需使用 $func:{参数名称} 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<template xmlns="http://ws.apache.org/ns/synapse" name="rabbitmq.sender">
<parameter name="exchangeName"/>
<parameter name="routingKey"/>
<sequence>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<header name="To"
scope="default"
expression="concat('rabbitmq:/?rabbitmq.connection.factory=CachedRabbitMQConnectionFactory&rabbitmq.exchange.name=',$func:exchangeName,'&rabbitmq.queue.routing.key=',$func:routingKey)"/>
<send/>
</sequence>
</template>
要使用它,需要 call-template 调解器。在括号中,您可以放置表达式,如下所示:
<call-template target="send.rabbitmq">
<with-param name="exchangeName" value="test"/>
<with-param name="routingKey" value="{get-property('testValue')}"/>
</call-template>