У меня странная проблема при попытке объединить JMS с MDB-очередью. Дело в том, что я хочу отправить JMS в очередь, и, получив сообщение, сделайте 2 асинхронных HTTP-доступа к серверу.NoClassDefFoundError при использовании асинхронного HTTP-запроса
Мне удалось настроить очередь и отправлять/получать сообщения. Кроме того, я могу сделать один http или синхронный, но когда я пытаюсь сделать асинхронный http get, я получаю NoClassDefFoundError. Я использую Apache пример класса hc.apache.org/httpcomponents-core-ga/httpcore-nio/examples/org/apache/http/examples/nio/NHttpClient.java
И это прекрасно работает, когда используя как приложение java, но я получаю NoClassDefFOundError при попытке позвонить из MDB.
Я использую JBoss 6 и Eclipse,
13: 55: 54073 ERROR [STDERR] java.lang.NoClassDefFoundError: орг/Apache/HTTP/NiO/NHttpClientEventHandler
13: 55: 54073 ERROR [STDERR] на com.mdb.QueueListenerMDB.onMessage (QueueListenerMDB.java:59)
13: 55: 54074 ОШИБКА [STDERR] на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод)
13:55 : 54,074 ОШИБКА [STDERR] на sun.reflect.NativeMethodAccessorImpl.in Воке (NativeMethodAccessorImpl.java:39)
13: 55: 54074 ОШИБКА [STDERR] на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
13: 55: 54074 ОШИБКА [STDERR] на java.lang.reflect.Method.invoke (Method.java:597)
13: 55: 54075 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeTarget (MethodInvocation.java:122)
13: 55: 54,075 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:111)
13: 55: 54075 ОШИБКА [STDERR] на org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext (ContainerMethodInvocationWrapper.java:72)
13: 55: 54076 ОШИБКА [STDERR] на org.jboss .ejb3.interceptors.aop.InterceptorSequencer.invoke (InterceptorSequencer.java:76)
13: 55: 54076 ОШИБКА [STDERR] на org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke (InterceptorSequencer.java:62)
13: 55: 54077 ОШИБКА [STDERR] на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод)
13: 55: 54077 ОШИБКА [STDERR] на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
13: 55: 54077 ОШИБКА [STDERR] на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. Java: 25)
13: 55: 54077 ОШИБКА [STDERR] на java.lang.reflect.Method.invoke (Method.java:597)
13: 55: 54078 ОШИБКА [STDERR] в орг. jboss.aop.advice.PerJoinpointAdvice.invoke (PerJoinpointAdvice.Java: 174)
13: 55: 54078 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54079 ОШИБКА [STDERR] на org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod (InvocationContextInterceptor.java:74)
13: 55: 54079 ОШИБКА [STDERR] на org.jboss.aop.advice.org.jboss.ejb3.interceptors. aop.InvocationContextInterceptor_z_fillMethod_1427582905.invoke (InvocationContextInterceptor_z_fillMethod_1427582905.java)
13: 55: 54080 ОШИБКА [STDERR] на org.jboss.aop .joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54080 ОШИБКА [STDERR] на org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup (InvocationContextInterceptor.java:90)
13: 55: 54080 ОШИБКА [STDERR] на org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_1427582905.invoke (InvocationContextInterceptor_z_setup_1427582905.java)
13: 55: 54080 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 5 5: 54081 ОШИБКА [STDERR] на org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke (AsynchronousServerInterceptor.java:110)
13: 55: 54081 ОШИБКА [STDERR] на org.jboss.aop. joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54081 ОШИБКА [STDERR] на org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke (CachedConnectionInterceptor.java:62)
13: 55: 54 081 ОШИБКА [STDERR] в org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54,0 82 ОШИБКА [STDERR] на org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke (TransactionScopedEntityManagerInterceptor.java:56)
13: 55: 54082 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54082 ОШИБКА [STDERR] на org.jboss.ejb3.AllowedOperationsInterceptor.invoke (AllowedOperationsInterceptor.java:47)
13: 55: 54082 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54,083 ОШИБКА [STDER R], в org.jboss.ejb3.tx.NullInterceptor.invoke (NullInterceptor.java:42)
13: 55: 54083 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java : 102)
13: 55: 54084 ОШИБКА [STDERR] на org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke (StatelessInstanceInterceptor.java:68)
13: 55: 54085 ОШИБКА [STDERR] в орг .jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54,085 ОШИБКА [STDERR] на org.jboss.ejb3.core.context.InvocationContextAdapter.перейти (InvocationContextAdapter.java:70)
13: 55: 54085 ОШИБКА [STDERR] на org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx (CMTTxInterceptor.java:223)
13:55: 54085 ОШИБКА [STDERR] на org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required (CMTTxInterceptor.java:353)
13: 55: 54086 ОШИБКА [STDERR] на org.jboss.ejb3.tx2.impl. CMTTxInterceptor.invoke (CMTTxInterceptor.java:209)
13: 55: 54086 ОШИБКА [STDERR] на org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke (CMTTxInterceptorWrapper.java:52)
13: 55: 54086 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54086 ОШИБКА [STDERR] на org.jboss. ejb3.tx.NullInterceptor.invoke (NullInterceptor.java:42)
13: 55: 54087 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54,087 ОШИБКА [STDERR] в org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke (Ejb3AuthenticationInterceptorv2.java:79)
13: 55: 54089 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54089 ОШИБКА [STDERR] на org.jboss.ejb3. BlockContainerShutdownInterceptor.invoke (BlockContainerShutdownInterceptor.java:67)
13: 55: 54089 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13:55: 54,090 ОШИБКА [STDERR] в org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke (CurrentInvocationContextInterceptor.java:47)
13: 55: 54090 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54090 ОШИБКА [STDERR] на org.jboss.aspects. currentinvocation.CurrentInvocationInterceptor.invoke (CurrentInvocationInterceptor.java:67)
13: 55: 54091 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54,091 ОШИБКА [STDERR] в org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke (EJB3TCCLInterceptor.java:86)
13: 55: 54091 ОШИБКА [STDERR] на org.jboss.aop.joinpoint.MethodInvocation.invokeNext (MethodInvocation.java:102)
13: 55: 54092 ОШИБКА [STDERR] на org.jboss.ejb3.mdb .MessagingContainer.localInvoke (MessagingContainer.java:306)
13: 55: 54092 ОШИБКА [STDERR] на org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery (MessageInflowLocalProxy.java:299)
13 : 55: 54,092 ОШИБКА [STDERR] на org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke (MessageInflowLocalProxy.Java: 152)
13: 55: 54093 ОШИБКА [STDERR] в $ Proxy130.onMessage (неизвестный источник)
13: 55: 54093 ОШИБКА [STDERR] на org.hornetq.ra.inflow.HornetQMessageHandler. OnMessage (HornetQMessageHandler.java:256)
13: 55: 54094 ОШИБКА [STDERR] на org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage (ClientConsumerImpl.java:822)
13:55: 54,094 ОШИБКА [STDERR] на org.hornetq.core.client.impl.ClientConsumerImpl.access $ 100 (ClientConsumerImpl.java:46)
13: 55: 54095 ОШИБКА [STDERR] на org.hornetq.core.client.impl.ClientConsumerImpl $ Runner.run (ClientConsumerImpl.java:940)
13: 55: 54095 ОШИБКА [STDERR] в орг. hornetq.utils.OrderedExecutorFactory $ OrderedExecutor $ 1.run (OrderedExecutorFactory.java:100)
13: 55: 54095 ОШИБКА [STDERR] на java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886)
13: 55: 54096 ОШИБКА [STDERR] на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908)
13: 55: 54098 ОШИБКА [STDERR] на java.lang.Thread.run (Thread.java:662)
13: 55: 54098 ОШИБКА [STDERR] Вызванный: java.lang.ClassNotFoundException: org.apache .http.nio.NHttpClientEventHandler из BaseClassLoader @ 72d47b5a {vfs: /// C: /Users/Guillermo/Documents/Workspace%20Eclipse/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1379590260770 /deploy/FirstMDBProyect.jar}
13: 55: 54099 ОШИБКА [STDERR] на org.jboss.classloader.spi.base.BaseClassLoader.loadClass (BaseClassLoader.java:480)
13: 55: 54099 ERROR [STDERR] в java.lang.ClassLoader.loadClass (ClassLoader.java:247)
13: 55: 54,099 ОШИБКА [СТЕРДЕР] ... еще 642
Любая помощь будет оценена!
Спасибо!
Пожалуйста, посмотрите на http://wso2.com/mailarchive/dev/2013-March/016528.html, который выглядит как аналогичная проблема (и не связана с JMS/MDB, а с версиями баннеров Commons Httpclient). – fvu
Спасибо, но я уже видел эту страницу и, к сожалению, не разрешу мою проблему. – TheMightyWiwi
Стоит попробовать :) – fvu