带有系统变量的java WSO2 JMS地址端点uri
我尝试创建wso2 jms端点,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="canary-v1-jms-internal-topic-endpoint" xmlns="http://ws.apache.org/ns/synapse">
<address uri="jms:/canary-internal-topic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616&transport.jms.DestinationType=topic">
<suspendOnFailure>
<initialDuration>-1</initialDuration>
<progressionFactor>1</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
</markForSuspension>
</address>
</endpoint>
但在这里,我需要通过从系统变量中获取值来更改uri。所以我决定更换tcp://localhost:61616使用$SYSTEM:TCP。代码是
<address uri="jms:/canary-internal-topic?transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=$SYSTEM:TCP&transport.jms.DestinationType=topic">
但它不起作用。谁能给我一个解决办法吗
# 1 楼答案
您可以使用配置文件[1]将参数作为环境变量注入。 由于您的需求是将参数作为环境变量注入,因此首先需要导出环境变量,如下所示
并定义端点,如下所示
代理服务示例:
# 2 楼答案
您可以使用
REST_URL_POSTFIX
将所需的部分附加到url的末尾