在尝试将 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 sun.reflect.NativeMethodAccessorImpl.invoke0 处的错误 [STDERR](本机方法)
13:55:54,074 sun.reflect.NativeMethodAccessorImpl.invoke 的错误 [STDERR](NativeMethodAccessorImpl.java:39)
13:55:54,074 sun.reflect.DelegatingMethodAccessorImpl.invoke 的错误 [STDERR](DelegatingMethodAccessorImpl.java:25)
13:55:54,074 错误 [STDERR] 在 java.lang.reflect.Method.invoke(Method.java:597)
13:55:54,075 org.jboss.aop.joinpoint.MethodInvocation.invokeTarget 的错误 [STDERR](MethodInvocation.java:122)
13:55:54,075 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:111)
13:55:54,075 org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext 的错误 [STDERR](ContainerMethodInvocationWrapper.java:72)
13:55:54,076 org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke 的错误 [STDERR](InterceptorSequencer.java:76)
13:55:54,076 org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke 的错误 [STDERR](InterceptorSequencer.java:62)
13:55:54,077 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处的错误 [STDERR]
13:55:54,077 sun.reflect.NativeMethodAccessorImpl.invoke 的错误 [STDERR](NativeMethodAccessorImpl.java:39)
13:55:54,077 sun.reflect.DelegatingMethodAccessorImpl.invoke 的错误 [STDERR](DelegatingMethodAccessorImpl.java:25)
13:55:54,077 java.lang.reflect.Method.invoke 的错误 [STDERR](Method.java:597)
13:55:54,078 org.jboss.aop.advice.PerJoinpointAdvice.invoke 的错误 [STDERR](PerJoinpointAdvice.java:174)
13:55:54,078 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,079 org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod 的错误 [STDERR](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 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,080 org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup 的错误 [STDERR](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 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,081 org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke 的错误 [STDERR](AsynchronousServerInterceptor.java:110)
13:55:54,081 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,081 org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke 的错误 [STDERR](CachedConnectionInterceptor.java:62)
13:55:54,081 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,082 org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke 的错误 [STDERR](TransactionScopedEntityManagerInterceptor.java:56)
13:55:54,082 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,082 org.jboss.ejb3.AllowedOperationsInterceptor.invoke 的错误 [STDERR](AllowedOperationsInterceptor.java:47)
13:55:54,082 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,083 org.jboss.ejb3.tx.NullInterceptor.invoke 的错误 [STDERR](NullInterceptor.java:42)
13:55:54,083 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,084 org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke 的错误 [STDERR](StatelessInstanceInterceptor.java:68)
13:55:54,085 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,085 org.jboss.ejb3.core.context.InvocationContextAdapter.proceed 的错误 [STDERR](InvocationContextAdapter.java:70)
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,085 错误 [STDERR]
13:55:54,086 org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke 的错误 [STDERR](CMTTxInterceptor.java:209)
13:55:54,086 org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke 的错误 [STDERR](CMTTxInterceptorWrapper.java:52)
13:55:54,086 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,086 org.jboss.ejb3.tx.NullInterceptor.invoke 的错误 [STDERR](NullInterceptor.java:42)
13:55:54,087 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,087 org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke 的错误 [STDERR](Ejb3AuthenticationInterceptorv2.java:79)
13:55:54,089 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,089 org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke 的错误 [STDERR](BlockContainerShutdownInterceptor.java:67)
13:55:54,089 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,090 org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke 的错误 [STDERR](CurrentInvocationContextInterceptor.java:47)
13:55:54,090 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,090 org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke 的错误 [STDERR](CurrentInvocationInterceptor.java:67)
13:55:54,091 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,091 org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke 的错误 [STDERR](EJB3TCCLInterceptor.java:86)
13:55:54,091 org.jboss.aop.joinpoint.MethodInvocation.invokeNext 的错误 [STDERR](MethodInvocation.java:102)
13:55:54,092 org.jboss.ejb3.mdb.MessagingContainer.localInvoke 的错误 [STDERR](MessagingContainer.java:306)
13:55:54,092 org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery 的错误 [STDERR](MessageInflowLocalProxy.java:299)
13:55:54,092 org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke 的错误 [STDERR](MessageInflowLocalProxy.java:152)
13:55:54,093 错误 [STDERR] 在 $Proxy130.onMessage(未知来源)
13:55:54,093 org.hornetq.ra.inflow.HornetQMessageHandler.onMessage 的错误 [STDERR](HornetQMessageHandler.java:256)
13:55:54,094 org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage 的错误 [STDERR](ClientConsumerImpl.java:822)
13:55:54,094 错误 [STDERR] 在 org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:46)
org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:940)的 13:55:54,095 错误 [STDERR]
13:55:54,095 org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run 的错误 [STDERR](OrderedExecutorFactory.java:100)
13:55:54,095 错误 [STDERR] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
13:55:54,096 java.util.concurrent.ThreadPoolExecutor$Worker.run 的错误 [STDERR](ThreadPoolExecutor.java:908)
13:55:54,098 错误 [STDERR] 在 java.lang.Thread.run(Thread.java:662)
13:55:54,098 错误 [STDERR] 原因:java.lang.ClassNotFoundException:来自 BaseClassLoader@72d47b5a{vfs:///C:/Users/Guillermo/Documents/Workspace%20Eclipse/ 的 org.apache.http.nio.NHttpClientEventHandler .metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1379590260770/deploy/FirstMDBProyect.jar}
13:55:54,099 org.jboss.classloader.spi.base.BaseClassLoader.loadClass 的错误 [STDERR](BaseClassLoader.java:480)
13:55:54,099 错误 [STDERR] 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
13:55:54,099 错误 [STDERR] ... 还有 64 个
任何帮助,将不胜感激!
谢谢!