Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netty 使用Vertex web客户端版本4.0.0时出现java.lang.IllegalAccessError_Netty_Vert.x_Java 14_Vert.x Webclient - Fatal编程技术网

Netty 使用Vertex web客户端版本4.0.0时出现java.lang.IllegalAccessError

Netty 使用Vertex web客户端版本4.0.0时出现java.lang.IllegalAccessError,netty,vert.x,java-14,vert.x-webclient,Netty,Vert.x,Java 14,Vert.x Webclient,将Vertx4.0.0与JDK14一起使用。尝试使用vertx web客户端发出REST请求时,我遇到以下异常: 15:56:48.294 [vert.x-eventloop-thread-0] ERROR io.vertx.core.impl.ContextImpl - Unhandled exception java.lang.IllegalAccessError: class io.vertx.core.buffer.impl.VertxUnsafeHeapByteBuf cannot a

将Vertx4.0.0与JDK14一起使用。尝试使用vertx web客户端发出REST请求时,我遇到以下异常:

15:56:48.294 [vert.x-eventloop-thread-0] ERROR io.vertx.core.impl.ContextImpl - Unhandled exception
java.lang.IllegalAccessError: class io.vertx.core.buffer.impl.VertxUnsafeHeapByteBuf cannot access its superclass io.netty.buffer.UnpooledUnsafeHeapByteBuf (io.vertx.core.buffer.impl.VertxUnsafeHeapByteBuf and io.netty.buffer.UnpooledUnsafeHeapByteBuf are in unnamed module of loader 'app')
        at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[?:?]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600) ~[?:?]
        at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        at io.vertx.core.buffer.impl.VertxByteBufAllocator.<clinit>(VertxByteBufAllocator.java:20) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.<init>(BufferImpl.java:64) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.<init>(BufferImpl.java:60) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.buffer(BufferImpl.java:38) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.Buffer.buffer(Buffer.java:49) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.codec.impl.BodyCodecImpl$1.<init>(BodyCodecImpl.java:88) ~[vertx-web-common-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.codec.impl.BodyCodecImpl.create(BodyCodecImpl.java:86) ~[vertx-web-common-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.handleReceiveResponse(HttpContext.java:427) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:338) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:322) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:289) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.receiveResponse(HttpContext.java:238) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.lambda$null$13(HttpContext.java:564) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:125) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:61) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:180) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.Promise.complete(Promise.java:66) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestImpl.handleResponse(HttpClientRequestImpl.java:350) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestBase.handleResponse(HttpClientRequestBase.java:185) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestBase.lambda$new$0(HttpClientRequestBase.java:71) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:52) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.ContextImpl.emit(ContextImpl.java:294) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:24) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection$StreamImpl.handleHead(Http1xClientConnection.java:537) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleResponseBegin(Http1xClientConnection.java:695) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleHttpMessage(Http1xClientConnection.java:628) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleMessage(Http1xClientConnection.java:602) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.net.impl.ConnectionBase.read(ConnectionBase.java:151) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:144) [vertx-core-4.0.0.jar:4.0.0]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:426) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1476) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1225) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1272) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
        at java.lang.Thread.run(Thread.java:832) [?:?]

从上一次stacktrace来看,类路径上似乎有多个netty版本。确保所有版本都相同(在本例中为4.1.58.Final)。

直到vert.x发布此问题的修复程序。安妮特·萨拉瓦特提出的建议暂时解决了这个问题。这将在POM文件中包含以下依赖项:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.48.Final</version>
</dependency>

伊奥·内蒂
讨厌的
4.1.48.最终版本

升级似乎没有那么简单。您还可以说明
io.netty.util.internal.ObjectPool$ObjectCreator的实现与netty版本升级的区别吗?netty有一些奇怪的问题。在我的例子中,WebFlux导致事件循环在类路径上时终止。我使用测试和跟踪解决了这个问题,并确定了@Naman,如果您不知何故错过了它,这是一个
ClassNotFoundException
。@ConcurrentBhai不,我没有错过它。询问实施的原因是OP提到的显式升级导致了CNFE。谢谢Norman。第二个stacktrace尝试查看将netty库升级到包含相同类的版本是否可以解决此问题。确实如此,但它产生了一个新问题,解决起来要复杂得多,因为现在我需要从我的所有vertx依赖项中排除所有netty依赖项,以便使它们都能使用不同的版本。我不想走这条路,因为我不认为我需要更改vertx netty版本依赖关系。有没有其他办法解决这个问题?据我所知,你需要更新netty。
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.48.Final</version>
</dependency>