两个spring应用程序,都使用某个jar和应用程序上下文 - 我如何控制从哪个应用程序获取上下文中的bean?

时间:2014-05-04 15:34:51

标签: java spring tomcat jmx spring-jmx

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

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

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

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

但我总是得到applA的豆子。我怎么告诉它我是否想要applB或applA的bean?

我应该,(怎么样?),使用

MBeanServerConnection connection = JmxUtils.getMBeanServerConnection(url);

并在url中指定一个不同的端口,具体取决于我想从中获取bean的appl?

1 个答案:

答案 0 :(得分:0)

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