我如何在 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&amp;mqtt.server.port=1883&amp;mqtt.client.id=esb.test.sender&amp;mqtt.topic.name=v1/devices/me/telemetry&amp;mqtt.subscription.qos=0&amp;mqtt.blocking.sender=true&amp;mqtt.subscription.username=25416990;">

举个例子,我想在端点末尾添加“测试”,我该怎么做?

对于类似的问题,但通过向 rabbitmq 发送消息,我创建了模板,我在其中动态设置了 exchangeNameroutingKey。以同样的方式,您可以创建自己的模板。您需要创建名为“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&amp;rabbitmq.exchange.name=',$func:exchangeName,'&amp;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>