0

我有两个 Spring 应用程序 applA 和 applB,在 Tomcat 中运行 - 都使用 jarX.jar 和 applicationContext-x.xml。
因此,对于每个应用程序,都会有一个在上述上下文中定义的特定 bean 的实例。
我正在使用注释通过 JMX 公开 bean 及其一些方法。现在我想编写一个调用bean方法的测试客户端,但有时我想调用applA中bean的方法,有时调用applB中bean的方法。

我怎么做?
我在每个应用程序中还有一个名为 jmxServerConfiguration 的 bean,但每个应用程序都使用不同的端口。

目前在我的 JMX 客户端中,我正在使用

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource(applicationContextName);
theBean = beanFactory.getBean(BEAN_NAME);

但我总是得到applA的bean。我如何告诉它我想要 applB 还是 applA 的 bean?

我应该(如何?)使用

MBeanServerConnection connection = JmxUtils.getMBeanServerConnection(url);

并在 url 中指定不同的端口,具体取决于我想从中获取 bean 的应用程序?

4

1 回答 1

0

default-domainMBean 导出器上的 设置为每个应用程序的不同值,并使用适当的值ObjectName通过 JMX 访问 bean。

于 2014-05-04T17:53:05.960 回答