Мы используем jpos с Q2
с одним из наших webapp, установленным на tomcat6, и все было хорошо. Теперь нам нужно реализовать другое приложение jpos, используя q2, но когда мы развернули его на том же сервере tomcat6, он не загружал объекты, например. QMUX
, ChannelAdaptor
и т.д. Я заметил следующее исключение в TOMCAT журнала выводаИнициализация JPOS Q2 с использованием Tomcat6
javax.management.InstanceAlreadyExistsException: Q2:type=system,service=loader
at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312)
at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)
at org.jpos.q2.Q2.run(Q2.java:150)
at java.lang.Thread.run(Thread.java:662)
Вы можете увидеть источник исключения является Q2
классом и когда я скачал источник я заметил, следующий фрагмент кода в run
методе.
ArrayList mbeanServerList = MBeanServerFactory.findMBeanServer(null);
if (mbeanServerList.isEmpty()) {
server = MBeanServerFactory.createMBeanServer (JMX_NAME);
} else {
server = (MBeanServer) mbeanServerList.get(0);
}
Так что я решил включить JPOS исходный код в проект заменить приведенный выше код со следующими (примечание прокомментировал код), и все начинают работать, как ожидалось.
//ArrayList mbeanServerList = MBeanServerFactory.findMBeanServer(null);
//if (mbeanServerList.isEmpty()) {
server = MBeanServerFactory.createMBeanServer (JMX_NAME);
//} else {
// server = (MBeanServer) mbeanServerList.get(0);
//}
Пожалуйста, обратите внимание, что в модифицированном коде я больше не испытывать ли уже у нас есть MBeanServer доступны или не просто создать новый.
Вопрос
Теперь проблема я не совсем уверен, что я имею дело, не имея представления, что MBeanServer для, как мой фон .Net. Итак, вопрос: безопасно ли переходить с производством?
Спасибо, я заметил письмо от Aljendro, еще не пробовал, но надеюсь, что это сработает. Не могли бы вы найти, где я могу найти банку. Я попытался локально построить его не с задачей пения, хотя он создал банку в каталоге build. Спасибо –
Пожалуйста, проигнорируйте мой предыдущий комментарий, я нашел jar под jpos.org/maven. Я отдам его. благодаря –