JmsTemplate - 代理名称问题(ObjectName)

时间:2015-08-06 12:09:49

标签: spring jms activemq jmx jmstemplate

我们在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)

由于

0 个答案:

没有答案