【问题标题】:WSDL parsing error in JAX-WSJAX-WS 中的 WSDL 解析错误
【发布时间】:2014-02-14 11:54:55
【问题描述】:

我有一个使用 Apache Axis 1.2.1 生成的 WSDL。 现在我正在尝试使用 JAX-WS 2.1 Web 服务框架创建存根。

在生成存根时,我收到了验证错误。由于这个问题,它无法创建存根。

!WSDL 验证错误图片

我尝试通过 MyEclipse IDE、SOAP UI 工具和 Java 的本机 wsimport.bat 文件等许多工具来创建存根。 在所有三种情况下,由于格式不受支持,我未能创建存根。

但是当我尝试使用带有 Apache Axis 1.2.1 库的 SOAP UI 工具创建存根时,它被创建了存根。但那是不同的。

我的疑问是,WSDL 是一种 W3C 标准格式。所以,任何 JAVA API 都应该遵循这个标准,那么为什么这个 WSDL 不能创建存根呢? 和 因此,我需要使用 JAX-WS 2.1 而不是 Apache Axis 1.2.1 创建存根。

请给我建议可能的答案...

Click here for WSDL

【问题讨论】:

    标签: java web-services wsdl jax-ws axis


    【解决方案1】:

    您看到的错误是 Web 服务互操作性 (WS-I) 合规性错误。您的 WSDL 文档是有效的。您可以禁用 WS-I 在 Window->Preferences->Web Services->Profile Compliance 和 验证。将 WS-I AP 和 WS-I SSBP 都设置为忽略合规性。

    如果您确实想消除错误,请尝试删除 架构的架构。

     <xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>
    

    这一行是不必要的,因为模式类型是隐式导入的,并且 我以前见过这会导致工具出现问题。

    【讨论】:

      【解决方案2】:
        <import namespace="http://holder.webservices.external"/>
      

      这是定义架构的命名空间位置,在创建存根时无法通过工具访问。如果你只是把它放在互联网浏览器中,你会得到找不到页面的错误。

      要解决此问题,请将您的架构本地保存在您的计算机上并相应地更改 wsdl 中的导入位置,或者在 wsdl 本身的架构中定义元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-04
        • 2013-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 2010-10-20
        相关资源
        最近更新 更多