gpt4 book ai didi

javax.net.ssl.trustStore 没有得到更新

转载 作者:行者123 更新时间:2023-11-29 03:43:26 27 4
gpt4 key购买 nike

下面是使用开发 keystore 调用第一个 Web 服务的示例代码并使用阶段 keystore 调用第二个 Web 服务。

public static void main(String args[]) {

System.setProperty("javax.net.ssl.trustStore",
"C:\\Users\\shahire\\Desktop\\Keystores\\Keystores\\dev\\dev.keystore");
System.out.println("1st web service call");
// 1st axis2 web service call code

System.setProperty("javax.net.ssl.trustStore",
"C:\\Users\\shahire\\Desktop\\Keystores\\Keystores\\stage\\stage.keystore");
System.out.println("2nd web service call");
// 2nd axis2 web service call code

}

我能够调用第一个 Web 服务调用,但是在访问第二个 Web 服务调用时出现以下错误

org.apache.axis2.AxisFault:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径 在 org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)

通过查看异常,我觉得它缓存了“javax.net.ssl.trustStore”位置。

当我评论第一个 Web 服务调用时,我就可以访问第二个 Web 服务。

最佳答案

只是为了清楚。我不知道 Axis2 是否实际上出于某种原因“重用”或缓存了您所说的您提供的信任库系统属性;我最好的猜测是它初始化了一些读取属性的对象,并且在配置之后不需要再次读取它。
但是您可以通过将所有受信任的证书放在同一个信任库中 来解决这个问题。这肯定会解决您的问题,因为正如您所说,您实际上可以成功连接到第二个 Web 服务。
为什么一开始就使用不同的信任库?
如果您必须这样做,由于某些安全要求(您有吗?),您应该检查是否有其他 Axis 的 ssl 属性,特别是您没有使用。

关于javax.net.ssl.trustStore 没有得到更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110381/

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