首页 文章

在Spring Boot反应式Web应用程序上启用SSL,并在控制台中对该打印进行http调用时出现异常噪音

提问于
浏览
0

在我创建了我的spring boot反应式Web应用程序以支持SSL之后,当我尝试对服务器进行http调用时,它会在控制台中的异常跟踪下面打印 . 作为应用程序所有者,我无法阻止任何人使用我的服务 . 但我应该能够防止在控制台中进行跟踪打印,尤其是在反应性Web应用程序中,IO操作成本很高 . 有什么想法防止这种情况?

Edit 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

Edit 2

在IO操作成本高昂的情况下,我意识到这可能发生在事件循环线程池之外 . 所以它可能不会阻止任何线程 . 但我仍然希望防止在控制台中打印 .

Edit 1

重现的步骤

  • 结帐项目https://github.com/sp13ceg/spring-boot-reative-ssl

  • 启动服务器 ./gradlew booRun

  • 进行不安全的https调用 curl --insecure https://localhost:8080/hi 无误地运行

  • 进行http调用 curl http://localhost:8080/hi 您将在控制台中看到异常 .

io.netty.handler.ssl.NotSslRecordException:不是SSL / TLS记录:474554202f686920485454502f312e310d0a486f73743a206c6f63616c686f73743a383434340d0a557365722d4167656e743a206375726c2f372e35342e300d0a4163636570743a202a2f2a0d0a0d0a在io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1178)[网状处理程序-4.1.29.Final.jar: 4.1.29.Final] at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1243)[netty-handler-4.1.29.Final.jar:4.1.29.Final] at io.netty.handler .codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)[netty-codec-4.1.29.Final.jar:4.1.29.Final] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428 )[netty-codec-4.1.29.Final.jar:4.1.29.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)[netty-codec-4.1.29.Final . jar:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)[netty-tran sport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-traport-4.1.29.Final.jar:4.1.29 . 最终]在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead (DefaultChannelPipeline.java:1434)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)[netty-transport-4.1 . 29.Final.jar:4.1.29.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io .netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.AbstractNioByteChannel $ NioBy teonsafe.read(AbstractNioByteChannel.java:163)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628)[netty -transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563)[netty-transport-4.1.29.Final.jar:4.1 .29.Final]在io.netty.channel的io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)[netty-transport-4.1.29.Final.jar:4.1.29.Final] . nio.NioEventLoop.run(NioEventLoop.java:442)[netty-transport-4.1.29.Final.jar:4.1.29.Final] at io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run(SingleThreadEventExecutor.java:884 java.lang.Thread.run中的[netty-common-4.1.29.Final.jar:4.1.29.Final](Thread.java:748)

1 回答

  • 0

    我刚刚错过了日志跟踪中的重要内容 . 原始堆栈跟踪之前有一行显示了日志的名称 . 见 Edit 3 .

    添加此属性会禁用此日志在控制台中打印 . logging.level.reactor.ipc.netty.channel.CloseableContextHandler=off

相关问题