Ich versuche, auf einen Webdienst zuzugreifen, der SSL von Standalone-Java-Programm aktiviert hat. Ich konnte Client von WSDL erzeugen, aber wenn ich versuche, Webservice aufzurufen, erhalte ich SSL-Handshake-Problem. Im Folgenden finden SieAufrufen von HTPS WebService von Java
Java-CodeTestWebService sh = (TestWebService) shs.getTestWebServiceExportTestWebServiceHttpPort();
BindingProvider port = (BindingProvider)sh;
port.getRequestContext().put(BindingProvider.
ENDPOINT_ADDRESS_PROPERTY, args[0]);
System.out.println(((BindingProvider)sh).toString());
Die URL, die https://service.test.com/sca/TestWebService?wsdl sagen lässt ist
Unten ist die Fehlermeldung
die WSDL für den Zugriff auf Failed:
https://service.testwebservice.com/TestWebServiceExport?wsdl. It failed with:
Got com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=Corp Production Root CA V1, O=Cord Inc. is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error while opening stream from https://service.testwebservice.com/TestWebServiceExport?wsdl.
ich die ceritificate installiert haben im IE-Browser von der Website, aber immer noch kein Glück.
Danke, diese Lösung funktioniert aber ich muss hinzufügen "java -Djavax.net.ssl.trustStore = mykeystore ... MyClientClass" Java VM-Parameter gibt es keine Möglichkeit, die wir vermeiden können das habe ich Programme gesehen, die das nicht benutzen. –
Die cacerts-Datei ist der Standard-Truststore für die VM - vorausgesetzt, Sie haben das Zertifikat der korrekten cacerts-Datei hinzugefügt, sollten Sie keinen trustStore manuell als VM-Parameter angeben. Wenn Sie die Datei angeben müssen, ist es möglich, dass Sie das Zertifikat zu den Cacerts hinzugefügt haben, zum Beispiel für eine andere Java-Installation –