0

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 件以上

どんな助けでも大歓迎です!

ありがとうございました!

4

1 に答える 1

0

私は方法を見つけました:サーバーライブラリを編集して、不足しているファイルを含める必要がありました

于 2013-10-22T10:31:06.977 に答える