ich einen solchen Code haben:ClassNotFoundException: org/eclipse/Anlegestelle/ALPN/ALPN, aber ich habe den Zugang zu dieser Klasse
public static void main(String[] args) throws Exception {
System.out.println("ALPN class: " + ALPN.class);
HelloWorldClient client = new HelloWorldClient("localhost", 10009);
}
Dies ergibt eine derartige Ausgabe:
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 verwendet, und es sieht aus, dass Grpc versucht, die ALPN-Klasse dynamisch zu laden. Habe ich recht? Diese Klasse kann nicht gefunden werden, daher habe ich eine Fehlermeldung. Aber bitte schau, dass ich Zugang zu dieser Klasse habe (ich drucke diese Klasse in der ersten Zeile). Weiß jemand, warum es so passiert? Ich habe keine Ahnung:/
Ich löste dieses Problem torisch durch Hinzufügen von VM-Argument "-Xbootclasspath/p:" Konfigurationsoption ausführen, aber ich verstehe nicht, warum ich dies tun musste und auch nicht denke Das ist eine elegante Methode.
Haben Sie die Rolle in der Fehlermeldung, die mit „ALPN ist nicht richtig konfiguriert“? –
Glaubst du, dass org/eclipse/jetty/alpn/ALPN der richtige Name für diese Klasse ist? – laune
Bevor weitere Vermutungen angestellt werden, sehen Sie sich die Fehlermeldung der ClassNotFoundException an, die vom Methodenaufruf forName ausgelöst wurde. Es zeigt die Zeichenfolge des in diesem Aufruf angegebenen Namens. Schrägstriche sind falsch - Sie sollten Punkte haben, um Paketnamen zu trennen. – laune