Jetty Http2客户端问题

时间:2019-09-22 14:29:31

标签: jetty embedded-jetty http2 jetty-9

我遇到了Jetty 9.4.19 Http2 Client的异常。该服务器是在Jetty上运行的Spring Boot应用程序(2.1.8版本)

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 :(得分:0)

作为异常报告,服务器已发送了无效的HPACK块。

这是什么服务器? Tomcat?

如果通过将类别HTTP2Client设置为org.eclipse.jetty.http2为Jetty DEBUG启用DEBUG日志,您将获得有关客户端认为错误的更多详细信息。

就像服务器发送了无效的标头或类似的内容。

由于您基于Spring Boot,因此也可以在服务器端启用Jetty(如果尚未启用),如here所示,并查看问题是否仍然存在。

相关问题