簡體   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