如何使ActiveMQ transportConnector属性依赖于环境

时间:2013-07-10 16:50:13

标签: jboss port activemq

我正在寻找一种在ActiveMQ配置上替换它的方法:

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

带有“not-hardcoded”URI(例如,将“localhost”替换为解析为实例相关值的变量)。问题是,因为每个服务器有许多JBoss个实例,并且上面的URI解析为0.0.0.0:60019,所以一次只能运行一个实例,除非我们在每个应用程序的基础上配置它,这不仅令人沮丧,而且在某些情况下还不够(应该基于每个实例,这更令人沮丧)。

每个JBoss服务器都有自己的IP地址,因此我考虑使用${jboss.bind.address}来规避这一点,但它不会使用语法。我们还有一个环境变量%SERVERIP%,可用于从启动脚本调用它,但我不知道ActiveMQ是否读取了一个环境变量来分配其传输连接器URI。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

使用PropertyPlaceHolderConfigurer,你应该能够从文件或jvm系统变量中用一些$ {variable}替换uri。这应该有效,因为ActiveMQ配置实际上只是一个Spring上下文。