SoapUI在添加时出现WSDL错误

6

当我添加这个的时候,一直出现这个错误。有什么想法吗?我处理了其他WSDL链接,它们都很好,除了这个。

org.apache.xmlbeans.XmlException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 无法 找到请求目标的有效认证路径


自从这个话题被提出已经过了一段时间,但我有一个补充albciff的答案。SoapUI有它自己的JRE,你必须将证书导入到SoapUI的JRE的cacerts文件中。希望这可以帮助到你! - JAEP
5个回答

4

WSDL使用https协议,因此您需要将域证书添加到随SOAPUI安装的JRE的cacerts中(可能wsdl也会发布在http上,所以您可以尝试将wsdl的url更改为http,首先尝试这个,如果不行再按照以下步骤进行)。

您需要下载服务器证书(可以通过浏览器连接wsdl的url并将证书保存为档案)。

download server certificate sample

然后,您可以使用keytool将此证书导入到cacerts中:

keytool -import -alias somealias -file serverCertificate.cer -keystore SOAPUI_HOME/jre/lib/security/cacerts

cacerts 的默认密码为 "changeit"。

使用以下步骤,您可以使用 WSDL 并避免出现 "PKIX 路径构建失败" 异常。

希望这能帮到您,


在运行此命令之前,你可能安装了多个JRE,请切换目录并进入你的目标JRE:SOAPUI_HOME/jre/bin(参见:http://stackoverflow.com/a/8186224/2197088) - Legna

3
SOAP UI存在的问题在于它使用自己的JRE来执行程序...
要解决上述异常,请按以下步骤操作:
1. 从密钥库或浏览器(其中包含公钥)导出证书 2. 转到SOAPUI安装目录,并找到以下目录:\SmartBear\soapUI-4.0.1\jre\lib\security 3. 将证书导入cacerts信任存储区(这是默认的信任存储区) 4. 重新启动SOAP UI并加载WSDL...

1
如果您正在 OS X Yosemite 上运行 SoapUI 5.0,则 SoapUI 使用的信任存储库位于目录 /Applications/SoapUI-5.0.0.app/Contents/PlugIns/jre.bundle/Contents/Home/jre/lib/security 中。 - Dave Mulligan
对于SOAPUI 5.6.0,您需要将其导入到以下位置: /Applications/SoapUI-5.6.0.app/Contents/PlugIns/jre.bundle/Contents/Home/lib/security - Stephen Huff

2

这似乎是SoapUI中的一个错误(至少在4.6.4版本中如此)。我遇到了同样的问题,在确保我已经在所有地方导入了所有CA证书后,我发现这篇帖子提到了同样的问题。

我按照帖子中提到的安装了夜间构建版本,然后就能够解决SSL握手问题了。


我下载了位于此处的快照版本构建:http://www.soapui.org/Downloads/soapui-nightly-builds.html,它对我有效。 (请注意,“post”中的链接是SOAP UI Pro快照版本。) - Frank V

1
这里有一个狡猾的细节: SOAPui使用操作系统调用wsimport命令来调用wsimport程序,它不会加载内部类com.sun.tools.internal.ws.WsImport进行WSDL导入。
如果您正在使用默认的JRE运行SOAPui,但同时安装了不同的JDK,则使用SOAPui工具生成代码时,wsimport命令使用的是操作系统更好地了解的PATH中的命令,而不是随SOAPui一起提供的com.sun.tools.internal.ws.WsImport
在这种情况下,被调用的wsimport将不会引用SOAPUI_HOME\jre\lib\security中嵌入的cacerts。 相反,它将利用wsimport所属的JDK的默认cacerts。 SOAPui使用如图所示的JDK中的wsimport 在这种情况下,您需要遵循以下步骤:
  1. Download and save the server´s certificate to a file, say srv-certificate.txt

  2. Import this certificate to the cacerts of the JDK used by the SOAPui tools:

    C:\>keytool -import -alias somealias -file cmq-certificates.txt  -keystore C:\software\jdk1.8.0.65\jre\lib\security\cacerts
    

jdk1.8.0.65是SOAPui工具使用的JDK版本。

希望对您有所帮助!


0

我也遇到了同样的问题(在公司代理后面使用专业计算机):
事实证明,我只需要在SoapUI中设置代理None就可以解决它(无论是手动 - 在我的情况下是cntlm,还是自动 - Windows设置,公司代理 - 都不起作用 :-/)!...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接