添加此错误时,我一直收到此错误消息。有任何想法吗。我在其他WSDL链接上工作,除此之外它们都很好。
org.apache.xmlbeans.XmlException:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到所请求目标的有效证书路径
答案 0 :(得分:4)
WSDL位于https上,因此您需要将域证书添加到JRE上的cacerts(随SOAPUI安装一起)(也可能是wsdl也在http上发布,因此您可以尝试将wsdl的url更改为http,如果不尝试下面的步骤,首先尝试这个。)
您必须下载服务器证书(您可以使用浏览器连接到wsdl的URL并将证书另存为存档)。
然后,您可以使用keytool将此证书导入您的cacerts:
keytool -import -alias somealias -file serverCertificate.cer -keystore SOAPUI_HOME/jre/lib/security/cacerts
(cacerts的默认密码为“changeit”)。
通过这些步骤,您可以使用WSDL并避免“PKIX路径构建失败”异常。
希望这有帮助,
答案 1 :(得分:3)
SOAP UI的问题是它使用它赢得了JRE来执行程序...
要解决上述异常,请按照以下步骤操作。
答案 2 :(得分:2)
这似乎是SoapUI中的一个错误(至少从4.6.4开始)。我刚刚遇到了同样的问题,在确定我已经将所有CA证书导入到我发现this post的所有位置时都提到了相同的问题。
我安装了帖子中提到的夜间版本,我能够解决SSL握手问题。
答案 3 :(得分:0)
这里有一个狡猾的细节:
SOAPui使用OS系统调用wsimport
程序调用{{1}}命令。它不会加载内部类wsimport
来执行WSDL导入。
如果您使用随附的默认JRE运行SOAPui但是您还安装了不同的JDK,那么在使用SOAPui工具生成代码时,使用的com.sun.tools.internal.ws.WsImport
命令是操作系统知道更好地从PATH而不是SOAPui附带的wsimport
。
在这种情况下,被调用的com.sun.tools.internal.ws.WsImport
将不会引用SOAPUI_HOME \ jre \ lib \ security中的嵌入式cacerts。
相反,它使用wsimport
所属的JDK的默认cacerts。
SOAPui uses wsimport from a JDK as this picture shows
在这种情况下,您必须遵循的步骤是:
将服务器的证书下载并保存到文件中,例如srv-certificate.txt
将此证书导入到SOAPui工具使用的JDK的cacerts :
wsimport
其中jdk1.8.0.65是SOAPui工具使用的JDK。
希望它有所帮助!
答案 4 :(得分:0)
我遇到了同样的问题(在公司代理后面使用专业计算机):
看来我只需要在 SoapUI 中将 proxy 设置为 None
来解决它(在我的情况下,既不是 manual - cntlm - 也不是自动 - Windows 设置、公司代理 - 确实有效:-/) !...
答案 5 :(得分:-1)
自从这个话题被问到以来已经过了一段时间,但我对albciff的回答有所补充。
SoapUI拥有自己的JRE,你必须在SoapUI的JRE的cacerts文件中导入证书。
希望这有帮助!