Включение SSL в реактивном веб-приложении с пружинной загрузкой и выполнение http-вызова для печати этого исключения в консоли - PullRequest
0 голосов
/ 27 сентября 2018

После того, как я настроил мое реактивное веб-приложение с пружинной загрузкой для поддержки SSL, при попытке сделать http-вызов серверу оно выводит на экран ниже трассировки исключений в консоли.Как владелец приложения, я не могу препятствовать тому, чтобы кто-либо обращался к моему сервису.Но я должен быть в состоянии предотвратить печать этой трассировки в консоли, особенно в реактивном веб-приложении, , где операция ввода-вывода обходится дорого .Любая идея, чтобы предотвратить это?

Изменить 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 :

гдеОперация ввода-вывода стоит дорого Я только что понял, что это может происходить вне пула потоков цикла событий.Так что это может не блокировать какие-либо темы.Но я все еще хотел бы предотвратить печать этого в консоли.

Редактировать 1 :

Шаги для воспроизведения

  • Оформить заказ на проект https://github.com/sp13ceg/spring-boot-reative-ssl
  • запустить сервер ./gradlew booRun
  • Сделать небезопасный вызов https curl --insecure https://localhost:8080/hi работает без ошибок
  • Сделайте http-вызов curl http://localhost:8080/hi, вы увидитеисключение в консоли

    1037 * io.netty.handler.ssl.NotSslRecordException:. не SSL / TLS запись: 474554202f686920485454502f312e310d0a486f73743a206c6f63616c686f73743a383434340d0a557365722d4167656e743a206375726c2f372e35342e300d0a4163636570743a202a2f2a0d0a0d0a в 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 (ByteToder)[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 (AbstractNioBjteChan) [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)

1 Ответ

0 голосов
/ 01 октября 2018

Я только что пропустил важную вещь в журнале трассировки.Перед исходной трассировкой стека была строка, которая показывает имя журнала, откуда он поступает.см. Редактировать 3 .

Добавление этого свойства отключает печать этого журнала в консоли.logging.level.reactor.ipc.netty.channel.CloseableContextHandler=off

...