【问题标题】:how to handle schema-less response type from Mikogo WSDL using Apache CXF如何使用 Apache CXF 处理来自 Mikogo WSDL 的无模式响应类型
【发布时间】:2014-01-27 11:51:01
【问题描述】:

我使用 Apache CXF 的 wsdl2java 为 Mikogo Web 界面创建 java 存根。

创建失败并显示以下消息:

The part does not have a type defined. Every part must specify a type from
some type system. The type can be specified using the built in element or type
attributes or may be specified using an extension attribute.

WSDL 看起来定义了以下消息:

<wsdl:message name="methodHttpPostOut">
  <wsdl:part name="Body"/>
</wsdl:message>

<http:address location=... />

在我看来,这类似于非 SOAP 和“无模式”响应类型,严格的 XSD 类型定义未涵盖该类型。

  1. 我不确定 CXF 是否确实提供了这种“无模式”定义。
  2. http://schemas.xmlsoap.org/wsdl/http/ 的目的是什么,我可以在 Apache CXF 中使用这种接口

有人可以帮忙吗?

【问题讨论】:

    标签: web-services soap wsdl cxf


    【解决方案1】:

    您收到此错误是因为您的部件没有定义类型。您可以使用这些消息类型属性:

    • 元素。使用 QName 引用 XSD 元素。
    • 类型。指使用 QName 的 XSD simpleType 或 complexType。

    这里是 complexType 的简单示例:

    <definitions .... >
        <types>
            <schema .... >
    
               <element name="Invoice" type="tns:InvoiceType"/>
               <complexType name="InvoiceType">
                   <all>
                       <element name="id" type="string"/>
                   </all>
               </complexType>
            </schema>
        </types>
    
        <message name="PO">
            <part name="invoice" element="tns:Invoice"/>
        </message>
    </definitions> 
    

    1. 我认为 CFX 不支持“无shema”定义。
    2. In this link 你可以找到支持的命名空间。此命名空间提供 URI 属性。

    这里有一些关于 http 命名空间和 wsdl 消息的链接:

    【讨论】:

    • 谢谢,能否提供背景信息、HTTP 绑定的工作原理以及它与 apache cxf 的关系?
    【解决方案2】:

    我按照以下步骤使用来自heretrang.jar 成功地通过技巧对 XSD 进行了逆向工程:

    1. 使用 SOAP UI 作为客户端连接到 WSDL
    2. 从 SOAP UI 触发一个有效的请求
    3. 将生成的 XML 响应保存到文件中
    4. 运行 java -jar trang.jar response-sample.xml guessed.xsd
    5. trang 生成(在我的例子中)两个 XSD 文件,我手动修复了它们(类型并不总是被正确猜到,等等)
    6. 需要将 XSD 复制到 WSDL 中
    7. 使用 wsdl2java 重新创建 java 存根

    这种方法远不是首先使用模式,但它帮助了我,而无需过多地研究 XML/WSDL 编写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 2017-03-28
      • 1970-01-01
      相关资源
      最近更新 更多