2014-09-19 6 views
0

Мы используем 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. Итак, вопрос: безопасно ли переходить с производством?

ответ

1

Q2 является автономным приложением, и хотя он может быть встроен в другие приложения, 99% развертываний и основная область разработки нацелены на автономную настройку, поэтому вы можете найти (как и вы) некоторые грубые грани, когда запуская его в контейнере.

При этом мы понимаем вашу проблему и рассмотрели ее в jPOS 1.9.9-SNAPSHOT, см. 2dbd8de и ChangeLog.

+0

Спасибо, я заметил письмо от Aljendro, еще не пробовал, но надеюсь, что это сработает. Не могли бы вы найти, где я могу найти банку. Я попытался локально построить его не с задачей пения, хотя он создал банку в каталоге build. Спасибо –

+0

Пожалуйста, проигнорируйте мой предыдущий комментарий, я нашел jar под jpos.org/maven. Я отдам его. благодаря –

 Смежные вопросы

  • Нет связанных вопросов^_^