在使Spring Boot反应式Web应用程序支持SSL之后,当我尝试对服务器进行http调用时,它将在控制台中的异常跟踪下面打印。作为应用程序所有者,我无法阻止任何人使用我的服务。但是我应该能够防止在控制台中进行跟踪打印,尤其是在IO操作成本很高的响应式Web应用程序中,。有防止这种情况发生的想法吗?
编辑3 :
2018-10-01 14:11:18.440 ERROR 12457 --- [ctor-http-nio-2] r.i.n.channel.CloseableContextHandler : Handler failure while no child channelOperation was present
编辑2 :
IO操作成本很高的地方我刚刚意识到这可能是在事件循环线程池之外发生的。因此,它可能不会阻塞任何线程。但是我仍然想阻止它在控制台中打印。
编辑1 :
./gradlew booRun
curl --insecure https://localhost:8080/hi
时不会出错拨打http curl http://localhost:8080/hi
,您将在控制台中看到异常。
io.netty.handler.ssl.NotSslRecordException:不是SSL / TLS记录:474554202f686920485454502f312e310d0a486f73743a206c6f63616c686f73743a383434340d0a557365722d4167656e743a206375726c2f372e35342e300d0aa363624 在io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1178)[netty-handler-4.1.29.Final.jar:4.1.29.Final] 在io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1243)[netty-handler-4.1.29.Final.jar:4.1.29.Final] 在io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)[netty-codec-4.1.29.Final.jar:4.1.29.Final] 在io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)[netty-codec-4.1.29.Final.jar:4.1.29.Final] 在io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)[netty-codec-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)上[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead(DefaultChannelPipeline.java:1434)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)上[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)上[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read(AbstractNioByteChannel.java:163)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)[netty-transport-4.1.29.Final.jar:4.1.29.Final] 在io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run(SingleThreadEventExecutor.java:884)[netty-common-4.1.29.Final.jar:4.1.29.Final] 在java.lang.Thread.run(Thread.java:748)
答案 0 :(得分:0)
我只是错过了日志跟踪中的重要内容。原始堆栈跟踪之前有一行,显示了来自日志的日志名称。请参阅编辑3 。
添加此属性将禁用此日志在控制台中打印。
logging.level.reactor.ipc.netty.channel.CloseableContextHandler=off