JMS を MDB キューと結合しようとすると、奇妙な問題が発生します。問題は、JMS をキューに送信し、メッセージを受信するときに 2 つの非同期 HTTP をサーバーに取得させたいということです。
キューをセットアップしてメッセージを送受信することができました。また、単一の http または同期を作成できますが、非同期の http get を実行しようとすると、NoClassDefFoundError が発生します。私はApacheのサンプルクラスhc.apache.org/httpcomponents-core-ga/httpcore-nio/examples/org/apache/http/examples/nio/NHttpClient.javaを使用しています
また、Java アプリケーションとして使用する場合は問題なく動作しますが、MDB から呼び出そうとすると NoClassDefFOundError が発生します。
JBoss 6 と Eclipse を使用しています
13:55:54,073 エラー [STDERR] java.lang.NoClassDefFoundError: org/apache/http/nio/NHttpClientEventHandler
13:55:54,073 エラー [STDERR] com.mdb.QueueListenerMDB.onMessage (QueueListenerMDB.java:59) で
13:55:54,074 エラー [STDERR] (sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド))
13:55:54,074 エラー [STDERR] (sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) で)
13:55:54,074 エラー [STDERR] (sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) で)
13:55:54,074 エラー [STDERR] java.lang.reflect.Method.invoke(Method.java:597)
13:55:54,075 エラー [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:54,075 エラー [STDERR] org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72) で
13:55:54,076 エラー [STDERR] org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76) で
13:55:54,076 ERROR [STDERR] org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62) で
13:55:54,077 ERROR [STDERR] sun.reflect.NativeMethodAccessorImpl.invoke0 (ネイティブ メソッド) で
13:55:54,077 エラー [STDERR] (sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) で)
13:55:54,077 エラー [STDERR] (sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) で)
13:55:54,077 エラー [STDERR] java.lang.reflect.Method.invoke(Method.java:597) で
13:55:54,078 エラー [STDERR] org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174) で
13:55:54,078 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,079 エラー [STDERR] org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod (InvocationContextInterceptor.java:74) で
13:55:54,079 エラー [STDERR] org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_1427582905.invoke(InvocationContextInterceptor_z_fillMethod_1427582905.java) で
13:55:54,080 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,080 エラー [STDERR] org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup (InvocationContextInterceptor.java:90) で
13:55:54,080 エラー [STDERR] org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_1427582905.invoke(InvocationContextInterceptor_z_setup_1427582905.java) で
13:55:54,080 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,081 エラー [STDERR] org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke(AsynchronousServerInterceptor.java:110) で
13:55:54,081 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,081 エラー [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,082 エラー [STDERR] org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56) で
13:55:54,082 ERROR [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,082 エラー [STDERR] org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) で
13:55:54,082 ERROR [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,083 エラー [STDERR] org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) で
13:55:54,083 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,084 エラー [STDERR] org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68) で
13:55:54,085 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,085 エラー [STDERR] org.jboss.ejb3.core.context.InvocationContextAdapter.proceed (InvocationContextAdapter.java:70) で
13:55:54,085 エラー [STDERR] org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx (CMTTxInterceptor.java:223) で
13:55:54,085 エラー [STDERR] org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required (CMTTxInterceptor.java:353) で
13:55:54,086 ERROR [STDERR] org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:209) で
13:55:54,086 エラー [STDERR] org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52) で
13:55:54,086 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,086 エラー [STDERR] org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) で
13:55:54,087 ERROR [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:54,089 ERROR [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,089 ERROR [STDERR] org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67) で
13:55:54,089 ERROR [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:54,090 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,090 ERROR [STDERR] org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) で
13:55:54,091 エラー [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:54,091 エラー [STDERR] org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) で
13:55:54,092 ERROR [STDERR] org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:306) で
13:55:54,092 エラー [STDERR] org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery (MessageInflowLocalProxy.java:299) で
13:55:54,092 ERROR [STDERR] org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:152) で
$Proxy130.onMessage で 13:55:54,093 エラー [STDERR] (不明なソース)
13:55:54,093 エラー [STDERR] org.hornetq.ra.inflow.HornetQMessageHandler.onMessage (HornetQMessageHandler.java:256) で
13:55:54,094 エラー [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:54,095 エラー [STDERR] org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:940) で
13:55:54,095 エラー [STDERR] org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) で
13:55:54,095 エラー [STDERR] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) で
13:55:54,096 エラー [STDERR] java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:908) で
13:55:54,098 エラー [STDERR] java.lang.Thread.run (Thread.java:662) で
13:55:54,098 エラー [STDERR] 原因: java.lang.ClassNotFoundException: org.apache.http.nio.NHttpClientEventHandler from 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:54,099 エラー [STDERR] org.jboss.classloader.spi.base.BaseClassLoader.loadClass (BaseClassLoader.java:480) で
13:55:54,099 エラー [STDERR] java.lang.ClassLoader.loadClass (ClassLoader.java:247) で
13:55:54,099 ERROR [STDERR] ... 64 件以上
どんな助けでも大歓迎です!
ありがとうございました!