java-ClassNotFoundException:org / eclipse / jetty / alpn / ALPN,但我可以访问此类

我有这样的代码:

public static void main(String[] args) throws Exception {
    System.out.println("ALPN class: " + ALPN.class);
    HelloWorldClient client = new HelloWorldClient("localhost", 10009);
}

这给出了这样的输出:

ALPN class: class org.eclipse.jetty.alpn.ALPN
Exception in thread "main" java.lang.IllegalArgumentException: ALPN is not configured properly. See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#troubleshooting for more information.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:163)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:136)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:124)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)
    at btcduke.node.ln.HelloWorldClient.<init>(HelloWorldClient.java:35)
    at btcduke.node.ln.HelloWorldClient.main(HelloWorldClient.java:76)
Caused by: java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at io.grpc.netty.JettyTlsUtil.isJettyAlpnConfigured(JettyTlsUtil.java:34)
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:153)
    ... 5 more

HelloWorldClient使用grpc,并且看起来grpc正在尝试动态加载ALPN类.我对吗?找不到此类,因此出现错误消息.但是请看一下我是否可以访问该类(我在第一行中打印了该类).有人知道为什么会这样吗?我不知道 :/

我通过添加VM参数“ -Xbootclasspath / p:”来运行配置选项来解决此问题,但是我不明白为什么需要这样做,而且我也不认为这是一种优雅的方法.

解决方法:

ALPN支持是非常特定于JVM的,仅具有接口类是不够的.您还需要在命令行上运行时JVM特定的引导类路径(-Xbootclasspath)条目,ALPN才能起作用.

注意:Java 9不需要启动类路径,但是它仍然具有您需要包括的特定于运行时JVM的实现jar.

上一篇:实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展


下一篇:Java-严重:PWC6117:找不到文件-码头