После различных примеров конфигураций из документации Spring, а также некоторых форумов в Интернете, мой контекстный файл приложения выглядит следующим образом:
<beans>
<bean id="dH" class="abc.def.ghi.DH">
<constructor-arg>
<value>0</value>
</constructor-arg>
<property name="num" value="100"/>
</bean>
<bean class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=dH1" value-ref="dH"/>
</map>
</property>
</bean>
<bean class="org.springframework.jmx.support.MBeanServerFactoryBean"/>
</beans>
Я запускаю его без какого-либо контейнера и на простой JVM. Я могу подключиться к своему процессу через JConsole, но MBean не отображается. Однако регистрация компонента программно предоставляет его успешно.
MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
DH dh = new DH(0);
mbeanServer.registerMBean(dh, new ObjectName("bean:name=dH1"));
Я безуспешно пытался играть с конфигурацией Spring. Я думаю, что компонент не регистрируется на уже работающем сервере MBean, который был доступен из ManagementFactory.getPlatformMBeanServer(). Есть идеи по этому вопросу?