当我尝试在命令提示符下使用以下命令使用wsimport
时,它正常工作:
wsimport -d generated C:\Users\generated\wsdlfile.xml
但是,当我尝试使用下面的wsimport
时,它会抛出以下错误:
wsimport -d generated https://example.com/exampleService.svc?wsdl
Failed to read the WSDL document: https://example.com/exampleService.svc?wsdl, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s): At least one WSDL with at least one service definition needs to be provided.
Failed to parse the WSDL.
我可以从浏览器访问URL,同样的事情是从其他系统(从我的PC)开始。可能是什么原因?
答案 0 :(得分:11)
我已在Windows上通过禁用所有代理设置解决了此问题,如下所示:
Internet Options > Connections > Lan Settings > Disable all check boxes
注意:只是添加localhost或我的IP地址作为我的代理设置的例外对我不起作用。
答案 1 :(得分:3)
这似乎是您正在使用的java版本的问题......
确保您拥有java版本&#34; 1.7.x&#34;解决这个问题。
答案 2 :(得分:3)
我有同样的问题,在我的例子中,问题是WSDL文件的编码。
尝试从浏览器中打开https://example.com/exampleService.svc?wsdl
。如果可以完全解析,您将看到所有xml内容。如果没有,至少Firefox会指出问题所在。
希望在这种情况下帮助某人
答案 3 :(得分:0)
尝试将此选项设置为wsimport:-XdisableSSLHostnameVerification
在获取wsdls时禁用SSL主机名验证。
答案 4 :(得分:0)