我用这个客户端连接到一个工作正常的网络服务:
WSCSI WSCS = new WSCSI("http://localhost:8080/ServiceV2/services/WSCSISoap?wsdl","WSCSI","WSCSISoap");
IScoring instance = new ScoringCFA(WSCS);
assertEquals(true, instance.statusService());
我需要使用 SSL,所以我将 url 更改为: https://localhost:8181/ServiceV2/services/WSCSISoap?wsdl
然后在 VM 选项中添加:
-Djavax.net.ssl.trustStore="C:\cacerts.jks"
('Keytool -list -keystore "C:\cacerts.jks',当我运行这个命令时,我看到我需要的证书就在那里)
当我运行客户端时出现此错误:
java.security.cert.CertificateException: No name matching localhost found.)
最佳答案
这可能是因为您使用的证书是针对特定主机名 (www.myhost.com) 颁发的。尝试此 article 中的解决方案.
但请注意,代码示例仅用于本地主机测试,一旦您在适当的服务器上进行集成/组装测试,请将其删除。
关于java - 在 Java 中使用 SSL 调用 WS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4949334/