在连接到Web服务时,我在生产中遇到问题。
下面是错误消息
错误:由于以下原因而无法成功调用端点URI“ https://example.com/WebserviceLibrary/test.asmx”:javax.xml.soap.SOAPException:javax.xml.soap.SOAPException:消息发送失败:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径
提交作业时SOA工具失败。 Web服务器托管在IIS的安全端口下
有关SOA的信息:
SOA在运行时创建WSDL客户端,并使用从运行时检索到的WSDL中的服务的绑定端口端点URL。
SOA使用从注册表中发现服务,然后读取检索到的WSDL并在检索到的WSDL中调用服务的概念。
我看到SOA在运行时创建的WSDL客户端具有位置URI“ https://example.com/WebserviceLibrary/test.asmx”
它们具有外部PAT端口。服务器有一个PAT端口,例如11560。具有IP和PAT端口11560的URL运行正常,并且能够连接URL。他们可以通过curl命令或任何非SOA Java代码对其进行测试。
他们可以连接到该URI “ https://example.com:11560/WebserviceLibrary/test.asmx”
在我们的环境中进行内部测试时不会发生此问题,因为不涉及外部PAT端口。
我怀疑PAT端口可能是导致此问题的原因,但不确定如何发生。
虽然错误消息显示为某种证书问题,但它们可以通过https上的IP和端口进行连接和测试。
我认为解决此问题的一种方法是在IIS的PAT端口下托管Web服务器。你们有其他替代解决方案吗?
谢谢!
答案 0 :(得分:0)
据我所知,当尝试使用JSSE打开与主机的SSL连接时。这通常意味着服务器使用的是测试证书(可能是使用keytool生成的),而不是系统证书库中的证书。因此,您可以尝试编辑JAVA_HOME / jre / lib / security / cacerts文件或运行具有-Djavax.net.ssl.trustStore参数的应用程序以添加证书。PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效认证路径