javalite 异步事件处理失败,出现错误 [客户端] - AMQ214008:无法处理数据包 java.lang.UnsupportedOperationException

javalite async event processing failed with error [client] - AMQ214008: Failed to handle packet java.lang.UnsupportedOperationException

    please anybody help to fix this issue?<br/>
    **I am getting issue [client] - AMQ214008: Failed to handle packet java.lang.UnsupportedOperationException while processing the command data in javalite async?**<br/>

            [2018-03-30 10:27:16,303] - [DEBUG] [client] - Calling close on session ClientSessionImpl [name=d13aa760-33d6-11e8-b4fb-844bf530b8f3, username=null, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@58e64301, metaData=(jms-session=,)]@6a6c5fb3 <br/>
            [2018-03-30 10:27:16,306] - [DEBUG] [server] - QueueImpl[name=jms.queue.eventQueue, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=70d74287-3283-11e8-8a66-844bf530b8f3]]@39533a61 doing deliver. messageReferences=0 <br/>
            [2018-03-30 10:27:16,308] - [DEBUG] [client] - calling cleanup on ClientSessionImpl [name=d13aa760-33d6-11e8-b4fb-844bf530b8f3, username=null, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@58e64301, metaData=(jms-session=,)]@6a6c5fb3 <br/>
            [2018-03-30 10:27:16,335] - [DEBUG] [HttpAsyncRequestExecutor] - http-outgoing-0 [ACTIVE] [content length: 42355; pos: 42355; completed: true] <br/>
            [2018-03-30 10:27:16,336] - [DEBUG] [ThreadLocalRandom] - -Dio.netty.initialSeedUniquifier: 0xad1a1d5891abf66a <br/>
            **[2018-03-30 10:27:16,337] - [ERROR] [client] - AMQ214008: Failed to handle packet <br/>
            java.lang.UnsupportedOperationException<br/>
            at java.nio.ByteBuffer.array(Unknown Source)**<br/>
            at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.handleCompressedMessage(ClientConsumerImpl.java:600)<br/>
            at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.handleMessage(ClientConsumerImpl.java:532)<br/>
            at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.handleReceiveMessage(ClientSessionImpl.java:824)<br/>
            at org.apache.activemq.artemis.spi.core.remoting.SessionContext.handleReceiveMessage(SessionContext.java:97)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.handleReceivedMessagePacket(ActiveMQSessionContext.java:712)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.access0(ActiveMQSessionContext.java:111)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext$ClientSessionPacketHandler.handlePacket(ActiveMQSessionContext.java:755)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:594)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:368)<br/>
            at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:350)<br/>
            at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1140)<br/>
            at org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection.run(InVMConnection.java:183)<br/>
            at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)<br/>
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)<br/>
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)<br/>
            at java.lang.Thread.run(Unknown Source)<br/>
               <br/><br/>            

When i execute the code in standalone project, its working fine. But while running the same in Tomcat server its throwing the above error..?


Source Code is below public class TestCommand extends Command { private TestEvent event;

          public TestCommand(MsgEvent event) 
          {
          this.event = (TestEvent)event;
          }

          public TestCommand() 
          {
          } 

          @Override
          public void execute() 
          {   
              //code stuff
          }

      }
      <br/><br/>          
      async = new Async(filePath, false, new QueueConfig("eventQueue", new CommandListener(), threadCount));
          <br/>
      async.start();
      <br/>
      public void test(EventCommand ev)
      {
          async.send("eventQueue", ev);
      }       <br/>

Following libraries are loaded into classpath

please anybody help to fix this issue?

证据向我表明,当此代码在 Tomcat 中执行时,它使用的 java.nio.ByteBuffer 实现与 运行 独立时不同(可能是由于不同版本的网络)。 code causing the exception is calling java.nio.ByteBuffer.array() which is not required to be implemented (i.e. throwing an UnsupportedOperationException is valid here). This was dealt with in Artemis via this commit 在 Artemis 1.4 中可用。也就是说,没有理由使用这么旧的 Artemis 版本。我建议您尽快升级到最新的 2.5 版本。