java - 生成 WSDL 文件

标签 java wsdl wsdl2code

我想实现 WSDL 服务。为了生成其代码,我使用不同的工具。当我使用SoapUI时,生成文件的方法如下:

*******************************************************
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:tem="http://tempuri.org/">
    <soapenv:Header>
        <tem:AuthenticationHeader>
            <tem:TicketID>?</tem:TicketID>
        </tem:AuthenticationHeader>
    </soapenv:Header>
    <soapenv:Body>
        <tem:GetInfo>
            <tem:sNo>?</tem:sNo>
            <tem:source>?</tem:source>
        </tem:GetInfo>
    </soapenv:Body>
</soapenv:Envelope>

当我使用https://app.boomerangapi.com/时在 Chrome 上,此方法为:

<x:Envelope
    xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:tem="http://tempuri.org/">
    <x:Header>
        <tem:AuthenticationHeader>
            <tem:TicketID>?</tem:TicketID>
        </tem:AuthenticationHeader>
    </x:Header>
    <x:Body>
        <tem:GetInfo>
            <tem:sNo>?</tem:sNo>
            <tem:source>?</tem:source>
        </tem:GetInfo>
    </x:Body>
</x:Envelope>

为什么命名空间中生成的方法不同?!

该服务的源可能存在什么问题?!

最佳答案

这两个 SOAP 主体完全相同。

一个namespace prefix元素标签中只是命名空间 URI 的符号简写。

XML 文档可以 define a namespace prefix使用以 xmlns::

开头的属性
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

该属性意味着“此元素及其以 soapenv: 开头的后代中的所有名称实际上都是与 URI http://schemas.xmlsoap.org/soap/envelope/关联的名称。”

下面的命名空间定义是完全相同的;它只是指定一个不同的前缀用作同一 URI 的简写:

xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"

因此,唯一的区别在于这两个 XML 文档如何引用“http://schemas.xmlsoap.org/soap/envelope/”URI:

  • 第一个文档指定以 soapenv: 开头的元素与该 URI 关联。
  • 第二个文档指定以 x: 开头的元素与该 URI 关联。

表示法不同,但意思是一样的。它们实际上具有相同的内容。

关于java - 生成 WSDL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67034808/

相关文章:

java - 设置长度时如何在 StringBuilder 中添加空格而不是 null?

java - 使用 rest-assured 作为通用的 http 客户端

python - NetSuite 错误 : CustomFieldRef is an abstract type and cannot be instantiated

namespaces - WSDL targetNamespace 和 XML Schema targetNamespace 必须相同吗?

java - 没有为 XSD 和 WSDL 文件生成 XMLBean 类 (Maven)

java - 从 Java 进程读取 InputStream

java - Hibernate 映射类实体名称

java - 自定义使用 wsdl 文件生成的 SOAP 请求中的前缀和命名空间位置

maven-2 - axis2 Maven 示例

php - 从 WSDL 生成 PHP 代码(用于服务替换)