在运行WSDL2Java
示例时,我想检查生成的WSDL
,因为我对从Web服务生成的客户端代码NETBEAN存在问题。这是WSDL
有效还是无效?如果无效,为什么在URL
以及XML
中为WSDL
中的"广告"?
从CLI中运行WSDL2Java
验证器表示为无效:
thufir@doge:~$
thufir@doge:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64/
thufir@doge:~$
thufir@doge:~$ jars/apache-cxf-3.1.11/bin/wsdlvalidator https://www.w3schools.com/xml/tempconvert.asmx?WSDL
WSIBP Validator found <{https://www.w3schools.com/xml/}TempConvertHttpPost> is NOT a SOAP binding
WSDLValidator Error :
line 127 column 66 of https://www.w3schools.com/xml/tempconvert.asmx?WSDL: cvc-complex-type.4: Attribute 'part' must appear on element 'mime:content'.
line 136 column 66 of https://www.w3schools.com/xml/tempconvert.asmx?WSDL: cvc-complex-type.4: Attribute 'part' must appear on element 'mime:content'.
thufir@doge:~$
但是,从字面上看,这是我第一次完全使用WSDL2Java
API。也许有一个在线验证器以Web服务运行?
虽然我无法保存报告,但下载页面然后上传之后,它似乎是有效的,然后上传:
https://www.wsdl-analyzer.com/service/service/893784871?version=1
上述WSDL包含三个不同的绑定:SOAP 1.1,SOAP 1.2和HTTP,这意味着有三种不同的方法/协议可以调用温度转换器Webservice WebService,如您所见:https://www.w3schools.com/xml/tempconvert.asmx?op=celsiustofhenheit
,但是如果您坚持使用肥皂1.1绑定,则WSDL工具和互操作性最有效。为了学习目的,找到具有仅肥皂1.1绑定的WSDL。