【问题标题】:Failed to access the WSDL at: https://example.com?wsdl. It failed with: sun.security.validator.ValidatorException访问 WSDL 失败:https://example.com?wsdl。它失败了:sun.security.validator.ValidatorException
【发布时间】:2020-06-04 15:30:27
【问题描述】:

尝试从 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 em>

我使用的是Window10,Jdk1.8。

完整的错误日志

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

【问题讨论】:

    标签: java ssl java-8 wsdl keytool


    【解决方案1】:

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

    首先要做的是检查您的应用程序引用了哪个 JRE,首先检查您是否设置了 %JAVA_HOME%(如果在 Linux 上为 $JAVA_HOME)环境变量集,这通常是 JAVA 的 SSL 实现所关注的找到您的 JRE 的 cacerts 文件。

    在 Windows 命令行上,您可以使用以下命令找到所有 JAVA 安装:

    where java
    

    在 Linux 上:

    where java
    which java
    

    【讨论】:

    • 感谢您的宝贵回复我已经检查了我的 jdk 路径并在环境变量中的正确 jdk 中导入了证书。但仍然无法面对同样的问题。
    • 好的,首先列出您可能拥有的所有cacerts 文件,您可以在Windows 上使用dir /S "cacerts" 执行此操作并将证书导入所有文件,您不知道可能在哪个密钥库中采用。如果这不起作用,请检查您的 JVM 属性是否覆盖了 Keystore System.getProperty("javax.net.ssl.trustStore")System.getProperty("javax.net.ssl.keyStore") 的默认路径,如果没有设置,则默认为正在运行的 JRE 的 cacerts 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多