java - 无法访问位于 : https://example. com?wsdl 的 WSDL。它失败并显示 : sun. security.validator.ValidatorException

标签 java ssl java-8 wsdl keytool

尝试从 https://example.com?wsdl 创建 wsdl 客户端。 使用此命令wsimport -keep https://example.com?wsdl

我已经使用此命令安装了 ssl 证书 keytool -import -alias ctp -file C:\Users\ravi\Desktop\ctplive.cer -keystore C:\Program Files\Java\jdk1.8.0_241\jre\lib\security\cacerts

我使用的是Window10,Jdk1.8。

完整错误日志

无法访问 WSDL:https://example.com?wsdl 。它失败了:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径。

最佳答案

您需要确保将证书导入到您的 JAVA 应用程序正在使用的 keystore 中。在 Windows 或 Linux 上,您可能安装了多个 JRE,例如独立的 JRE,不在您的 JDK 下,例如C:\Program Files\Java\jre..\..\cacerts.

要做的第一件事是检查您的应用程序正在引用哪个 JRE,首先检查您是否有 %JAVA_HOME% ($JAVA_HOME 如果在 Linux 上)env变量集,JAVA 的 SSL 实现通常在此处查找 JRE 的 cacerts 文件。

在 Windows 命令行上,您可以通过以下方式找到所有 JAVA 安装:

where java

在 Linux 上:

where java
which java

关于java - 无法访问位于 : https://example. com?wsdl 的 WSDL。它失败并显示 : sun. security.validator.ValidatorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60317690/

相关文章:

java - Activity 选择问题中缺少测试用例

php - 我如何允许使用 CakePHP 访问我的 .well-known/目录?

iis - 如何从命令提示符将 SSL 证书分配给 IIS7 站点

java - 如何在 Java 中使用 Scanner、while 和 for 循环来递增字符串名称

java - 类型不匹配无法从类型 Optional<User> 转换为 User

java - 为什么我的枚举类型无法初始化?

java - Systemdesign : Webserver, API 和数据库

Java 8 流 - 链中的每个步骤都针对整个输入进行评估,还是项目通过?

java - Picocli:为 Map 类型的选项指定默认值

python - 如何使用 Python 通过证书颁发机构验证公钥?