java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted
我是Java世界的新手,正在尝试发送Https请求。当我试图通过通道发送请求时,我得到以下错误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.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