Проблема с Jetty Http2 Client - PullRequest
       109

Проблема с Jetty Http2 Client

0 голосов
/ 22 сентября 2019

Я получаю исключение ниже с Jetty 9.4.19 Http2 Client.Сервер представляет собой загрузочное приложение Spring (выпуск 2.1.8), работающее на Jetty

Request failed: java.io.IOException: protocol_error/invalid_hpack_block
at org.eclipse.jetty.http2.client.http.HttpReceiverOverHTTP2.onFailure(HttpReceiverOverHTTP2.java:184)
at org.eclipse.jetty.http2.HTTP2Stream.notifyFailure(HTTP2Stream.java:611)
at org.eclipse.jetty.http2.HTTP2Stream.onFailure(HTTP2Stream.java:361)
at org.eclipse.jetty.http2.HTTP2Stream.process(HTTP2Stream.java:267)
at org.eclipse.jetty.http2.HTTP2Session.onStreamFailure(HTTP2Session.java:513) 
at org.eclipse.jetty.http2.parser.Parser$Listener$Wrapper.onStreamFailure(Parser.java:404)
at org.eclipse.jetty.http2.parser.BodyParser.notifyStreamFailure(BodyParser.java:235)
at org.eclipse.jetty.http2.parser.BodyParser.streamFailure(BodyParser.java:228) 
at org.eclipse.jetty.http2.parser.HeaderBlockParser.parse(HeaderBlockParser.java:106) 
at org.eclipse.jetty.http2.parser.HeadersBodyParser.parse(HeadersBodyParser.java:172) 
at org.eclipse.jetty.http2.parser.Parser.parseBody(Parser.java:194) 
at org.eclipse.jetty.http2.parser.Parser.parse(Parser.java:123) 
at org.eclipse.jetty.http2.HTTP2Connection$HTTP2Producer.produce(HTTP2Connection.java:248) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:357) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:181) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:132) 
at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170) 
at org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:125) 
at org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:348) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) 
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:427) 
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:321) 
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) 
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917) 
at java.lang.Thread.run(Unknown Source) [?:?]

. Любые указатели будут высоко оценены.

1 Ответ

0 голосов
/ 22 сентября 2019

Сервер отправил недопустимый блок HPACK, как сообщает исключение.

Какой это сервер?Tomcat?

Вы получите более подробную информацию о том, что клиент считает неправильным, если вы включите ведение журнала DEBUG для Jetty HTTP2Client, установив категорию org.eclipse.jetty.http2 в DEBUG.

Вероятносервер отправил недопустимый заголовок или что-то подобное.

Поскольку вы работаете на Spring Boot, вы можете включить Jetty и на стороне сервера (если это еще не сделано), как показано здесь и посмотреть, если проблема все еще происходит.

...