Вчера я столкнулся с этим вопросом, но сумел разобраться с ним.Я потратил на это некоторое время, поэтому подумал, что этот пост будет полезен для экономии чужого времени.
Сначала вы можете зарегистрировать свои bean-компоненты в java-коде, как указано в вашем посте в методе main.Но я думаю, что намного проще, если вы используете Spring.
Проверьте эту ссылку для получения дополнительной информации;http://static.springsource.org/spring/docs/2.0.x/reference/jmx.html
Есть некоторые отверстия для петель, которые вам нужно избегать.Не запускайте два сервера MBeans в своем приложении.
Я использовал этот файл конфигурации:
<bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=beanName" value-ref="dataSource"/>
</map>
</property>
<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
</bean>
Используйте эту конфигурацию, чтобы присоединить имя компонента к MBeanExporter.Убедитесь, что для 'lazy-init' установлено значение false.Обратите внимание, что я использую эту конфигурацию в веб-приложении.Веб-приложение развернуто внутри Tomcat.Так что у Tomcat уже есть MBean-сервер.Таким образом, вам не нужно предоставлять одно явно.Если вы запускаете его в автономном режиме, вам нужно запустить сервер MBean и настроить его соответствующим образом.
Обратите внимание, что вам необходимо добавить следующие свойства в файл catalina.bat tomcat.set CATALINA_OPTS = -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8088 -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.hostname = "localhost"
Порт соединителя Jmx в этом случае - 8088, а имя хоста - "localhost". После того, как вы запустили tomcat, вам нужно запустить jconsole (я не буду рассказывать, какзапустите его здесь) Затем нажмите «RemoteProcess» и введите «localhost: 8088» и подключитесь к серверу MBean Tomcat.Затем перейдите на вкладку MBean в jconsole, и вы увидите там свой MBean.