我们在junit测试中使用了一些activemq操作(通过jmx)。
我们有两个主要环境:
1)本地
2)质量保证
作为我们的JMS操作代码的一部分,我们使用activemq objectName。
问题是 - 在一个环境中
Objectname = 'org.apache.activemq:BrokerName=localhost,Type=Broker'
在另一个环境中:
...
String operationName = "removeQueue";
String parameter = q.getName();
ObjectName activeMQ = new ObjectName(
"org.apache.activemq:type=Broker,brokerName=localhost");
if (parameter != null) {
Object[] params = { parameter };
String[] sig = { "java.lang.String" };
conn.invoke(
activeMQ,
operationName,
params,
sig);
}
else {
conn.invoke(
activeMQ,
operationName,
null,
null);
}
}
catch (Exception e) {
throw new RuntimeException(
e);
}
遗憾的是,我们的代码使用对象名称的硬编码名称,如下所示:
compass install compass
这个过程适用于一个环境,但不适用于另一个环境, 有没有办法设置对象名?或在连接到JMS之前获取Object名称(我们使用的是JmsTemplate)
由于