当加载WSDL时,SoapUI出现“failed to load url”错误。

40

我遇到了一些奇怪的问题。主要的问题是,在尝试将一个WSDL文件添加到新项目时,我不断收到以下错误:

Error loading [https://.../token?wsdl]: java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 -

这是记录在error.log文件中的消息:

java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 - 
at com.eviware.soapui.impl.wsdl.support.wsdl.UrlWsdlLoader.load(UrlWsdlLoader.java:184)
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:121)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:535)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:524)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
at java.lang.Thread.run(Unknown Source)

我已验证该URL上的应用程序正在运行,并且可以从Web浏览器访问WSDL,但无论如何我都会收到此错误消息。我在Windows 7上使用SoapUI 4.5.0(32位),也尝试了64位版本,结果相同。无论我是否连接VPN都会出现此问题。

您知道我可能为什么会收到此错误吗?

16个回答

80

11
我也遇到了同样的问题,我使用的是4.5.1 Win 32版本。代理已启用且端口设置为8081。在“文件->首选项->代理设置”中禁用代理后,问题得以解决。 - Jason
7
您也可以通过工具栏上的代理图标(一个带有红点或绿点的服务器)快速禁用/启用代理。 - Mark Cooper
2
Ubuntu 上的 5.2.1 版本,打开“文件”->“首选项”->“代理设置”,将其设置为“无”。 - Piotr Olaszewski
1
那就是确切的问题。 :) - Bee
3
链接已损坏,更改代理为“无”也无法解决。您有其他修复此问题的步骤吗? - user7294900
谢谢!我原以为它由于https而无法工作,所以我尝试先导入证书。结果不好!你的解决方案对我很有帮助! - MauroB

43

在我的情况下,安装服务的服务器仅配置了TLS,不允许使用SSL。因此,您需要通过向SoapUI vmoptions文件添加服务器TLS版本来进行更新。

-Dsoapui.https.protocols=TLSv1.2

您可以在SoapUI安装文件夹中找到vmoptions文件:

C:\Program Files (x86)\SmartBear\SoapUI-5.0.0\bin\soapUI-5.0.0.vmoptions

这解决了我的问题。此外,由于Web服务器需要,我还必须在soapUI首选项中启用客户端身份验证。 - Robert Strauch
这对我的情况非常有效。谢谢!SoapUI没有使这更明显的选项/错误消息,这很令人沮丧。 - EdGruberman
2
macOS用户需要修改/Applications/SoapUI-5.3.0.app/Contents/java/app/bin/soapui.sh中的soapui.sh文件(以及该目录中的其他.sh脚本)添加:JAVA_OPTS="$JAVA_OPTS -Dsoapui.https.protocols=TLSv1.2"以上内容为:$JAVA $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@" - Mark Hughes
1
不要为了允许SSL而更改您的服务器。保持一些尊严。 - mlhDev
1
不知道为什么这个答案不在顶部!? - Igor Semin
这对我在SoapUI版本5.3.0上有效。我遇到了这个错误[链接](https://i.imgur.com/R8L2Kxm.jpg)。将(-Dsoapui.https.protocols=TLSv1.2)添加到vmoptions文件中。唯一需要做的就是关闭SoapUI并重新启动。 - sk23

24

我曾经遇到过类似的问题,通过本地保存WSDL文件来解决。别忘了也要保存任何XSD文件。 你可能需要编辑WSDL文件以指定XSD文件的适当位置。


谢谢!我之前尝试直接加载WSDL,但我完全忘记了XSD。现在它可以工作了! - Pancho
嗨,chrismead,我也在做同样的事情。 - Nagarajan S R
2
不太好的解决方法。禁用代理(请参见下一个答案)效果更好。 - Yurii
我对这些很新,请告诉我在哪里添加xsd文件。 - Lina

2

尝试加载在MS Dynamics AX中实现的Web服务时,我遇到了这个错误。由于我通过VPN连接到我的网络,IPv6设置出了些问题。通过谷歌搜索,我在这里找到了解决方案: http://support.microsoft.com/kb/929852


1

这可能是由于SOAP UI选择IPV6地址造成的问题。添加以下JVM选项可以解决此问题:

-Djava.net.preferIPv4Stack=true

我在这里添加了它:

C:\Program Files\SmartBear\soapUI-4.5.2\bin\soapUI-4.5.2.vmoptions

不错。但为什么IPv6地址会有这个问题? - Rafael Andrade

1

在我的情况下,

加载错误 [https://.../token?wsdl]: java.lang.Exception: Failed to load url; https://.../token?wsdl, 0 

是由于伪造证书引起的。 如果您在浏览器中看到以下内容

"There is a problem with this website’s security certificate." 

那么就是这种情况。

解决方法是将证书导入到

 C:\Program Files (x86)\SmartBear\SoapUI-5.0.0\jre\lib\security\cacerts 

这是SOAPUI使用的默认Java路径。


1

这个错误是由WSDL文件中错误的schemaLocation引起的。

在wsdl文件中指定xsd文件的正确位置(可以是磁盘上的路径或xsd url)

示例

<xsd:import namespace="http://xyz:8080/" schemaLocation="http://172.17.16.53:9080/auth/authorizationBS?xsd=1"></xsd:import>

1
在wsdl文件中查找import元素,它看起来像这样:
`<import  namespace="nameSpaceValue" location="Users/myname/.../targetxsdName.xsd"/>`

将上述元素中的位置属性更改为本地存储XSD文件的位置,就可以使其正常工作。

1
以下解决方案对我很有帮助:
-Djsse.enableSNIExtension=false

在SoapUI-5.3.0.vmoptions中。

0

将SoapUI版本更新为SoapUI 5.5.0。当我尝试加载wsdl时,由于旧版SoapUI,导致出现此错误。


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