java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted

java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted,java,netty,Java,Netty,我是Java世界的新手,正在尝试发送Https请求。当我试图通过通道发送请求时,我得到以下错误 java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted 这是我的管道代码 if (sslCtx != null) { ch.pipel

我是Java世界的新手,正在尝试发送Https请求。当我试图通过通道发送请求时,我得到以下错误

java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted

这是我的管道代码

if (sslCtx != null) {
                         ch.pipeline().addLast(sslCtx.newHandler(ch.alloc()));
                     }

                     ch.pipeline().addLast(new HttpClientCodec());

                     ch.pipeline().addLast(new HttpContentDecompressor());

                     ch.pipeline().addLast(new HttpObjectAggregator(1048576));
                     ch.pipeline().addLast("encoder", new HttpRequestEncoder());
                     ch.pipeline().addLast(new ClientHandler());
这是我的引导代码

ChannelFuture f = b.connect(host, port).sync(); 

             ByteBuf bbuf = Unpooled.copiedBuffer(message, StandardCharsets.UTF_8);

             FullHttpRequest request = new DefaultFullHttpRequest(
                     HttpVersion.HTTP_1_1, HttpMethod.POST, uri,bbuf,Boolean.FALSE);
             request.headers().set(HttpHeaders.Names.HOST, host);
             request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
             request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, bbuf.readableBytes());
             ((DefaultFullHttpRequest) request).content().clear().writeBytes(bbuf);

             f.channel().writeAndFlush(request);
堆栈跟踪:

Exception in thread "main" java.lang.AbstractMethodError: io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
    at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:73)
    at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:107)
    at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:821)
    at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:805)
    at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:842)
    at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1032)
    at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:296
上下文:尝试发送HTTPS请求


我做错了什么?

这很可能是因为类路径上有多个Netty 4.x依赖版本。只需确保您只有类路径上的最新版本,并且它应该可以工作

您可以共享更多上下文吗?Stack trace,你想实现什么,你尝试了什么。@ŠimonKocúrek更新了帖子。上下文是我正在尝试从客户端向服务器发送https请求。不确定我还能为Context提供什么您正在使用的netty版本是什么?netty版本4.1.6