【问题标题】:wsimport "Cannot resolve the name..."wsimport "无法解析名称..."
【发布时间】:2010-03-16 14:37:30
【问题描述】:

我一直在尝试使用 ${JAVA_HOME}/bin/wsimport 导入以下 Web 服务:http://soap.genome.jp/KEGG.wsdl

wsimport -version
JAX-WS RI 2.1.6 in JDK 6

但我收到以下错误:

parsing WSDL...

[WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component.
  line 19 of http://soap.genome.jp/KEGG.wsdl#types?schema1

[ERROR] undefined simple or complex type 'soapenc:Array'
  line 19 of http://soap.genome.jp/KEGG.wsdl
(....)

问题是来自 WSDL 还是来自 wsimport 的实现?我应该使用其他工具吗?

谢谢

皮埃尔

【问题讨论】:

    标签: java web-services wsdl wsimport


    【解决方案1】:

    soapenc:Array 表示一种称为“RPC 编码”的非标准 Web 服务编码样式。这是一种非常古老的风格,曾经在微软平台上很流行;它已经过时(即它不是 WS-I 规范的一部分)并且不受 JAX-WS 等现代工具的支持。

    我所知道的唯一支持 RPC 编码的 Web 服务的 java 工具是 Apache Axis 1

    【讨论】:

    • 请告诉我如何将 RPC/Encoding 样式的 wsdl 转换为一些新支持的样式?
    • 您可以使用神秘的 Axis1,然后在其上编写您自己的 REST API。为什么还要费心创建一个 wsdl?
    【解决方案2】:

    我从这个错误报告中找到(显然是)一个解决方法: https://netbeans.org/bugzilla/show_bug.cgi?id=116987

    基本上您需要将schemaLocaion 添加到您的import 定义中:

    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"
            schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-07
      • 2017-05-30
      • 2020-05-01
      • 2016-06-23
      • 2022-12-11
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多