【发布时间】:2014-09-21 23:47:09
【问题描述】:
我已经使用 Jetty 和 SPDY 返回 JDK8,我看到现在 Jetty 9.2 支持 ALPN 协议而不是 NPN(请参阅我的问题 How to run Jetty with SPDY on JDK8?)。于是我设置了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 version "1.8.0_05" 和码头 9.2.2.v20140723。
我在 WinXP 上使用 JDK 1.7 和 alpn-boot-7.0.0.v20140317.jar 时遇到了同样的错误,如果从 -Xbootclasspath/p:c:/jars/npn-boot/npn-boot-1.1.7.v20140316.jar 更改,我在其中发生了同样的错误
我的代码中的这个执行点指向:
SSLconnector = new HTTPSPDYServerConnector(server, sslContextFactory);
似乎即使使用 ALPN 码头也需要来自 npn-boot 的类。 是错误还是我做错了什么?
【问题讨论】: