有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有Netty和WebFlux的java ChannelOperation终端堆栈

我正在学习Greg L.Turnquist编写的Spring Boot 2.0,不断地出现错误,不知道如何调试甚至找到它们。我刚刚完成了第3章,每当我在网站上做任何事情时,都会出现以下错误:

2019-07-22 19:57:58.245 DEBUG 17404 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [id: 0xbcb056a7, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:52374] Last HTTP response frame
2019-07-22 19:57:58.245 DEBUG 17404 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [id: 0xbcb056a7, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:52374] Decreasing pending responses, now 0
2019-07-22 19:57:58.245 DEBUG 17404 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [id: 0xbcb056a7, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:52374] Last HTTP packet was sent, terminating the channel
2019-07-22 19:57:58.246 TRACE 17404 --- [ctor-http-nio-3] reactor.netty.channel.ChannelOperations  : [id: 0xbcb056a7, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:52374] Disposing ChannelOperation from a channel

java.lang.Exception: ChannelOperation terminal stack
    at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:391) ~[reactor-netty-0.8.8.RELEASE.jar:0.8.8.RELEASE]
    at reactor.netty.http.server.HttpServerOperations.cleanHandlerTerminate(HttpServerOperations.java:519) ~[reactor-netty-0.8.8.RELEASE.jar:0.8.8.RELEASE]
    at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:313) ~[reactor-netty-0.8.8.RELEASE.jar:0.8.8.RELEASE]
    at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:54) ~[reactor-netty-0.8.8.RELEASE.jar:0.8.8.RELEASE]
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:495) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:474) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:715) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:270) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:350) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:428) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:939) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:360) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.nio.AbstractNioByteChannel$1.run(AbstractNioByteChannel.java:54) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
    at java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]

我可以直接克隆他的存储库(我可能会),但我想知道这里的问题是什么,以及如果我再次遇到类似问题,我如何确定这些问题的根源。堆栈跟踪中没有一个文件是我的代码,因此我不知道可以为您提供哪些代码片段来帮助


共 (1) 个答案

  1. # 1 楼答案

    你激活了跟踪级别的netty日志了吗?原因在channelOperation类中的终端操作中,u可以读取以下代码:if(log.isTraceEnabled()){log.trace(ReactorNetty.format(this.channel(),“从通道中处理channelOperation”)、新异常(“channelOperation终端堆栈”);}