[英]How can we inject properties into wso2 Micro Integrator and Enterprise Integrator using file.properties?
我想在不使用集成工作室的情况下在另一台服务器上使用 .car 文件。 所以我希望能够使用配置文件动态更改主机名和端口。 我的端点 URL 中有变量 {uri.var.x},这就是我不能使用 $FILE:x 从 file.properties 获取完整 URL 的原因。
我已经尝试过How to read a property injected from file.properties in WSO2 - micro integrator? 但它没有用。
您可以简单地从文件中读取属性并将其分配给您想要的变量。 然后在您的端点配置中使用它。
<property expression="get-property('file', 'x')" name="uri.var.x"/>
您可以将这些值存储在MI_HOME/conf
文件夹中名为file.properties
的属性文件中,该文件将自动加载。 如果您使用不同的文件名,您可以将其传递给服务器启动脚本,如-Dproperties.file.path=/home/dev/dev.properties
。 然后您可以通过 Property Mediator 阅读它们。
此外,如果您想从多个属性构建完整的 URL,您可以使用 Xpath 函数。
<property expression="concat('https://', get-property('file', 'host'), ':', get-property('file', 'port'))" name="uri.var.x" scope="default" type="STRING" />
如果未从默认文件中选择属性,请传递如下文件路径。
sh micro-integrator.sh -Dproperties.file.path=./conf/file.properties
WSO2 EI更新
EI 似乎不支持文件范围。 但是,您可以使用get-property('env', 'NAME_OF_VARIABLE')
从环境变量中读取变量
<property expression="concat('https://', get-property('env', 'host'), ':', get-property('env', 'port'))" name="uri.var.x" scope="default" type="STRING"/>
如果你想从属性文件中读取它们,你可以像下面那样做。 假设您有一个如下所示的属性文件。
stockQuoteEP=http://localhost:9000/services/SimpleStockQuoteService
ycr=test1234
host=localycr
port=6676
将以下脚本添加到integrator.sh
以将属性导出为环境变量。 您可以根据需要改进脚本。
while read line; do
echo "Exporting $line"
export $line
done < /home/wso2/wso2ei-6.6.0/conf/file.properties
然后在您的集成中阅读它们如下。
<property expression="concat('https://', get-property('env', 'host'), ':', get-property('env', 'port'))" name="uri.var.x" scope="default" type="STRING"/>
属性调解器中文件范围的更新 2
正如 Sanoj 所提到的,属性调解器中的file
范围仅适用于 MI 4.0 之后的香草包。 如果您有 WSO2 订阅,您可以将其作为 MI 和 EI 的更新获得。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.