WebService - [Debug] undefined element declaration 's:schema'

时间:2023-03-09 02:18:04
WebService - [Debug] undefined element declaration 's:schema'

错误:

[ERROR] undefined element declaration 's:schema'
line 44 of http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl [ERROR] undefined element declaration 's:schema'
line 85 of http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl Exception in thread "main" com.sun.tools.internal.ws.wscompile.AbortException
at com.sun.tools.internal.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:129)
at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2283)
at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:183)
at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:126)
at com.sun.tools.internal.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:429)
at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:190)
at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:168)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159)
at com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)

解决方案:

参考 https://www.cnblogs.com/xdp-gacl/p/4260627.html

如下图所示:

  WebService - [Debug] undefined element declaration 's:schema'

  运行结果显示,使用wsimport工具直接生成客户端代码会抛异常, 无法生成客户端代码, 只是因为我们要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:

  1. 将对应的wsdl文档保存到本地

  WebService - [Debug] undefined element declaration 's:schema'

  2、修改wsdl文档的部分内容: <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

  WebService - [Debug] undefined element declaration 's:schema'

  再次执行wsimport生成代码,这次使用保存在本地的WeatherWS.wsdl文件来进行生成,如下图所示:

  WebService - [Debug] undefined element declaration 's:schema'

  从执行结果显示,这一次可以正常生成代码了,刷新一下src目录,就可以看到生成的代码了