Jetty HTTP/2客户端示例

4
我使用了Jetty提供给我们的客户端代码,但出现了一些问题。我想运行的代码在这里:https://github.com/eclipse/jetty.project/blob/master/jetty-http2/http2-client/src/test/java/org/eclipse/jetty/http2/client/Client.java 实际上,我知道我遇到了与这个人类似的问题:Jetty HTTP/2 client receive server push example。我停留在这个人的更新2,并在http2-client文件夹下建立了一个新项目。但问题仍然存在。
INFO::main: Logging initialized @170ms
Exception in thread "main" java.util.concurrent.TimeoutException
at org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:130)
at org.eclipse.jetty.http2.client.Client.main(Client.java:56)

我使用的jar包是Jetty-9.3.3。但完全不知道出了什么问题。开发环境为eclipse luna。


1
请确保:A)您的引导类路径中有ALPN启动jar包;B)您正在联系的服务器支持HTTP/2;C)如果使用TLS,请确保您正在联系的服务器发送有效的、可验证的证书。 为“org.eclipse.jetty”类别启用DEBUG日志级别,您将获得有关正在发生的情况的大量信息。 此外,设置ALPN.debug=true以了解ALPN是否正常工作。 - sbordet
谢谢您,sbordet。看起来您是Jetty的开发人员。我正在使用Jetty研究http/2。非常感谢,Jetty在http/2方面提供了很大的支持。但是我认为最新的ALPN boot jar 8.1.4似乎不起作用,发布日期是20150727。当我尝试8.1.3时,一切正常。您能否请看一下这个问题。谢谢。 - Kennith Jiang
你需要更加精确地说明哪些部分不起作用,因为对我们来说它是有效的。请加入Jetty邮件列表,以进行更详细的讨论,这在SO评论中是不可能的。谢谢! - sbordet
1
我遇到了同样的问题,并在jetty-users邮件列表上开始了一次讨论。请参见http://dev.eclipse.org/mhonarc/lists/jetty-users/msg06302.html 如果我能够解决这个问题,我会在这里发布答案。 - Mike Ivanov
1个回答

1

请确保将ALPN jar添加到引导类路径中,且该jar版本与您的Java版本相匹配。参见此表格:https://www.eclipse.org/jetty/documentation/current/alpn-chapter.html#alpn-versions

如果您使用的是Java版本“1.8.0_51”,则应使用以下附加VM参数:

-Xbootclasspath/p:/full/path/to/alpn-boot-8.1.4.v20150727.jar

我遇到了相同的超时异常,后来发现我没有正确地将alpn-boot jar添加到引导类路径中。具体来说,我没有使用完整的绝对路径到jar文件。如果引导类路径无效,虚拟机不会给出任何错误。为我提供绝对路径解决了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接