2013-07-10 16 views
0

我正在尋找一種方式來代替這個在我的ActiveMQ的配置:帶有「not-hardcoded」 URI如何使ActiveMQ的transportConnector財產environmentaly依賴

<transportConnector uri="tcp://localhost:60019"> disableAsyncDispatch="false"/> 

(例如,用一個變量替換「localhost」這解決了實例相關的值)。問題是,由於每臺服務器有多個JBoss實例,並且上面的URI解析爲0.0.0.0:60019,所以一次只能運行一個實例,除非我們以每個應用程序爲基礎進行配置,這不僅令人沮喪,而且在那裏是不夠的(應該是基於實例的,這更令人沮喪)。

每個JBoss服務器都有自己的IP地址,所以我想用${jboss.bind.address}來繞過這個,但它不會語法化。我們還有一個環境變量%SERVERIP%,可以用它從啓動腳本調用它,但我不知道ActiveMQ是否讀取用於分配其傳輸連接器URI的環境變量。

任何幫助將不勝感激。

回答

2

使用PropertyPlaceHolderConfigurer,你應該可以用文件或jvm系統變量中的$ {variable}替換uri。這應該起作用,因爲ActiveMQ配置實際上只是一個Spring上下文。