gpt4 book ai didi

java - sun.security.validator.ValidatorException 当通过 java 使用 web 服务方法时

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:46 25 4
gpt4 key购买 nike

我想通过 java 将 soap web 服务与这个 wsdl 一起使用:

https://sadad.shaparak.ir/services/MerchantUtility.asmx?wsdl

但是当我运行一些方法时会发生这个错误:

Failed to access the WSDL at: https://sadad.shaparak.ir/services/MerchantUtility.asmx?wsdl. It failed with: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

我使用下面的代码来做到这一点:

MerchantUtilitySoap port;
MerchantUtility service = new MerchantUtility();
port = service.getMerchantUtilitySoap();

例如,从这个网络服务中使用这个方法:

long timeStamp = Long.parseLong(port.calcTimeStamp());

谁能解决这个问题?我应该如何修复我的网站?

我也阅读了这些解决方案,但它们不能帮助我解决这个问题:

javax.xml.ws.WebServiceException: Failed to access the WSDL

Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?

"PKIX path building failed" and "unable to find valid certification path to requested target"

http://www.java-samples.com/showtutorial.php?tutorialid=210

最佳答案

这就是我修复 ValidatorException 所做的工作。首先从您的浏览器获取网站的证书(.cer 文件)(因为它使用的是 HTTPS)。现在,如果您使用的是 Windows,请打开 CMD 并转到 jre/bin 文件夹并运行此命令:

keytool -importcert -file path/to/certificate.cer -keystore keystore.jks -alias "Alias"

-file : 你从浏览器获得的 .cer 文件的路径

-别名:此证书的名称

此命令将证书导入 keystore.jks 文件运行后,它会要求输入密码。为 keystore.jks 设置密码。现在,在您的 Java 代码中添加这些行

System.setProperty("javax.net.ssl.trustStore","path/to/keystore.jks");
System.setProperty("javax.net.ssl.trustStorePassword","keystore_pass");

您还可以将 keystore.jks 从 jre/bin 文件夹复制到您的项目文件夹并从那里使用它我认为有更好的方法,但这是我从其他 stackoverflow 主题中学到的并解决了我的问题。

关于java - sun.security.validator.ValidatorException 当通过 java 使用 web 服务方法时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37466044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com