zoukankan      html  css  js  c++  java
  • 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

    如下图所示:

      

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

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

      

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

      

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

      

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

  • 相关阅读:
    python利用scapy模块写一个TCP路由追踪和扫描存活IP的脚本
    mitm6:通过IPv6攻破IPv4网络
    php写一个判断是否有cookie的脚本
    python写一个DDos脚本(DOS)
    分布式系统设计系列 -- 基本原理及高可用策略(转)
    在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)
    好玩的Raft动画演示,原理秒懂
    全球分布式数据库:Google Spanner(论文翻译)
    分布式系统设计系列 -- 基本原理及高可用策略 (转)
    MySQL更新优化(转)
  • 原文地址:https://www.cnblogs.com/frankcui/p/10507882.html
Copyright © 2011-2022 走看看