通过向 WSO2 入站端点提供静态值,它可以正常工作,如下面给出的示例所示。
寻找一种能够从配置(即从deployment.toml或axis2.xml等)动态选取值的解决方案,以便侦听器应该在系统启动期间连接。
<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse" name="RabbitMQConsumer" sequence="amqpSeq" onError="amqpErrorSeq" protocol="rabbitmq" suspend="false">
<parameters>
<parameter name="sequential">true</parameter>
<parameter name="coordination">true</parameter>
<parameter name="rabbitmq.connection.factory">AMQPConnectionFactory</parameter>
<parameter name="rabbitmq.server.host.name">localhost</parameter>
<parameter name="rabbitmq.server.port">5672</parameter>
<parameter name="rabbitmq.server.user.name">guest</parameter>
<parameter name="rabbitmq.server.password">guest</parameter>
<parameter name="rabbitmq.queue.name">queue</parameter>
<parameter name="rabbitmq.exchange.name">exchange</parameter>
<parameter name="rabbitmq.connection.ssl.enabled">false</parameter>
</parameters>
</inboundEndpoint>
下面是一些尝试使用入站端点参数的示例,但尚未成功。
1>
<parameter name="rabbitmq.server.host.name">${rabbitmq:host}</parameter>
2>
<parameter name="rabbitmq.server.host.name">$axis2:rabbitmq.server.host.name</parameter>
3> 从注册表尝试
<parameter name="rabbitmq.server.host.name">
<![CDATA[json-eval(get-property('gov:/rmqconnection/RMQ.json', 'rmq_host'))]]>
</parameter>
您可以使用
$SYSTEM:SOME_PROPERTY_NAME
动态设置环境变量或 $FILE:SOME_PROPERTY_NAME
使用位于 file.properties
目录的 <MI_HOME>/conf
文件设置值,如下所示,
<parameter name="rabbitmq.server.host.name">$SYSTEM:RABBIT_HOST_PROPERTY</parameter>
请参阅以下官方文档了解更多信息https://mi.docs.wso2.com/en/latest/develop/injecting-parameters/#inbound-endpoint-parameters