Назад | Перейти на главную страницу

Tomcat Custom MBean

Кто-нибудь знает, как развернуть собственный MBean в Tomcat?

Пока я нашел это http://www.junlu.com/list/3/8871.html. Я скопировал свой jar-файл с MBean в каталог lib Tomcat, поэтому загрузчик пользовательских классов должен его поднять. Затем я выполнил инструкции, но продолжал получать исключение ниже. В моем MBean определенно есть общедоступный конструктор. Если я удалил банку из каталога lib tomcat, я получаю то же сообщение, которое говорит о том, что он не забирает мою банку или моя банка загружается после запуска Apache MBean Modeler в Tomcat.

06 августа 2010 г. 12:14:23 org.apache.tomcat.util.modeler.modules.MbeansSource выполнить СЕРЬЕЗНО: ошибка при создании компонента mbean: type = Bean javax.management.NotCompliantMBeanException: класс MBean должен иметь открытый конструктор в com.sun .jmx.mbeanserver.Introspector.testCreation (Introspector.java:127) в com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.createMBean (DefaultMBeanServerInterceptor.java:2 в com.sun.jmx.interceptor. 1 на com.sun.jmx.mbeanserver.JmxMBeanServer.createMBean (JmxMBeanServer.java:393) на org.apache.tomcat.util.modeler.modules.MbeansSource.execute (MbeansSource.java:207) на org.ap. util.modeler.modules.MbeansSource.load (MbeansSource.java:137) на org.apache.catalina.core.StandardEngine.readEngineMbeans (StandardEngine.java:517) на org.apache.catalina.core.StandardEngine.init (StandardEngine. java: 321) на org.apache.catalina.core.StandardEngine.start (StandardEngine.java:411) на org.apache.catalin a.core.StandardService.start (StandardService.java:519) в org.apache.catalina.core.StandardServer.start (StandardServer.java:710) в org.apache.catalina.startup.Catalina.start (Catalina.java: 581) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invokef.java.java.java.jpg. .Method.invoke (Method.java:597) в org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:289) в org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:414)

Поддержка Tomcat MBean основана на Разработчик моделей Apache Commons, который также определяет формат дескриптора XML. Видеть эта тема для получения дополнительных указателей.

В моих тестах это сообщение появлялось, когда имя класса и атрибут name в файле mbeans-descriptors.xml не совпадали.

<mbeans-descriptors>
<mbean name="<your class name here>"
...

Кажется, что кот ищет конструктор по атрибуту имени.

Я не уверен, требуется ли это в спецификации JMX или нет, но вы должны назвать свой интерфейс FooMBean, если ваш реализующий класс называется Foo. Если вы этого не сделаете, при развертывании вы получите сообщение об исключении: MBean не соответствует требованиям. Это крайне важно !!!