当前位置: 首页 > 知识库问答 >
问题:

如何使用ALPN使用SPDY运行Jetty?

景宏富
2023-03-14

我回到了JDK8和Jetty和SPDY,我看到现在Jetty 9.2支持ALPN协议而不是NPN协议(参见我的问题,如何在JDK8上运行Jetty和SPDY?)。所以我设置了bootclasspath:

java -Xbootclasspath/p:c:/jars/alpn-boot/alpn-boot-8.0.0.v2014031 ...

但现在我有个例外:

Exception in thread "xyz.server" java.lang.NoClassDefFoundError:
        org/eclipse/jetty/npn/NextProtoNego$ServerProvider
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    ...
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnector.<init>(HTTPSPDYServerConnector.java:63)
    at org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnector.<init>(HTTPSPDYServerConnector.java:53)
    at org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnector.<init>(HTTPSPDYServerConnector.java:43)
    at xyz.my.my_httpsrv_jetty.startHTTPSServer(my_httpsrv_jetty.java:359)
    ...

我使用Java版本“1.8.0_05”和jetty 9.2.2.v20140723。

SSLconnector = new HTTPSPDYServerConnector(server, sslContextFactory);

共有1个答案

葛意远
2023-03-14

HttpSpdyServerConnector未更新为ALPN,并且当前对NPN的使用进行了硬编码。

为了将ALPN与SPDY一起使用,您必须以以下方式配置ServerConnector:

SslContextFactory sslContextFactory = new SslContextFactory();
HttpConfiguration httpConfig = new HttpConfiguration();

SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, "alpn");
ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory("spdy/3", "http/1.1");
alpn.setDefaultProtocol("http/1.1");
HTTPSPDYServerConnectionFactory spdy = new HTTPSPDYServerConnectionFactory(SPDY.V3, httpConfig);
HttpConnectionFactory http = new HttpConnectionFactory(httpConfig);

Server server = new Server();
ServerConnector connector = new ServerConnector(server, new ConnectionFactory[]{ssl, alpn, spdy, http});

server.start();

我以https://bugs.eclipse.org/bugs/show_bug.cgi?id=440756进行跟踪。

 类似资料:
  • 问题内容: 我回到了带有Jetty和SPDY的JDK8,并且看到现在Jetty9.2支持ALPN协议而不是NPN(请参阅我的问题如何在JDK8上使用SPDY运行Jetty?)。所以我设置了: 但是现在我有了例外: 我使用和码头9.2.2.v20140723。 我从JDK 1.7和WinXP 遇到的相同错误,如果从 此执行在我的代码中指向: 似乎即使使用ALPN码头,也需要npn-boot中的类。是

  • 问题内容: 几天来,我们有了JDK8。我试图用SPDY服务器运行Jetty。在JDK8中,没有NPN支持,因此其结尾为: 我已经npn-boot-1.1.6.v20130911.jar在可与最新JDK7一起使用的CLASSPATH上运行它。 关于如何在JDK8上使用SPDY运行Jetty有任何解决方法? 问题答案: 与以前的Java版本一样,Java 11中没有Public JRE。不要与jre以

  • spdy说明:http://www.chromium.org/spdy 一、安装插件 依赖包 t-ts-fetcher t-spdylay yum insall t-ts-spdy -b test -y 二、配置插件 vim /etc/trafficserver/plugin.config /usr/lib64/trafficserver/plugins/libtsspdy.so 三、重启ATS

  • 我有一个Gradle项目,我正试图用它来运行Jetty。我的文件如下所示。 建筑格拉德尔 我试图从命令行运行这个项目,我使用的命令是: > 应构建项目,并输出以下内容: Jetty插件已被弃用,计划在Gradle 4.0中删除。考虑使用Gretty(https://github.com/akhikhl/gretty)而不是插件。在build_6xw4u3pr68h02k136x2vqowd。运行(

  • 我以ServletContainer的身份从Tomcat切换到Jetty,并尝试使用Jetty的所有默认设置启用SPDY。以下是启用SPDY的步骤: > 我下载并解压缩Jetty 我在webapps中复制了一个。war文件和一些只针对项目的部署描述符。 (现在是棘手的部分)我通过执行以下命令来启用SPDY: java-jar start.jar--add-to-startd=spdy 我接受不受信

  • 问题内容: 我想用于一些Web测试,并且遇到了(https://github.com/detro/ghostdriver)。我已经按照自述文件中的说明进行了构建,并且可以在指定的端口上运行它,但是我不确定如何从Java代码访问Web驱动程序。为了澄清,我已经在ruby中看到了这个示例: 我只是不确定如何从java中执行相同操作。 问题答案: 我相信此链接将回答您的问题。您将需要Selenium 2