繁体   English   中英

我们如何使用 file.properties 将属性注入 wso2 Micro Integrator 和 Enterprise Integrator?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM