gpt4 book ai didi

java - CXF 自动生成的 wsdl

转载 作者:行者123 更新时间:2023-12-02 00:54:50 24 4
gpt4 key购买 nike

我正在使用 CXF-WS 2.2.1 开发 Web 服务。我之前已经开发和测试了这些服务,但现在生成的 wsdl 与之前的不同,这里是旧的

<?xml version="1.0" ?> 
- <wsdl:definitions name="ICodeTableServiceService" targetNamespace="http://codetable.service.esps.cvs.com/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://codetable.service.esps.cvs.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://codetable.service.esps.cvs.com/" xmlns:tns="http://codetable.service.esps.cvs.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ESPSException" type="tns:ESPSException" />
- <xsd:complexType name="ESPSException">
- <xsd:sequence>
<xsd:element name="logged" nillable="true" type="xsd:boolean" />
<xsd:element name="priority" nillable="true" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getCodeTableDataMultiple" type="tns:getCodeTableDataMultiple" />
- <xsd:complexType name="getCodeTableDataMultiple">
- <xsd:sequence>
<xsd:element minOccurs="0" name="codeTypeName" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getCodeTableDataMultipleResponse" type="tns:getCodeTableDataMultipleResponse" />

旧的就像

<?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions name="ICodeTableServiceService" targetNamespace="http://codetable.service.esps.cvs.com/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://codetable.service.esps.cvs.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://codetable.service.esps.cvs.com/" xmlns:tns="http://codetable.service.esps.cvs.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="sayHello" nillable="true" type="tns:sayHello" />
<xs:element name="sayHelloResponse" nillable="true" type="tns:sayHelloResponse" />
<xs:element name="ESPSException" type="tns:ESPSException" />
- <xs:complexType name="ESPSException">
- <xs:sequence>
<xs:element name="logged" nillable="true" type="xs:boolean" />
<xs:element name="priority" nillable="true" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="getCodeTableData" nillable="true" type="tns:getCodeTableData" />
<xs:element name="getCodeTableDataResponse" nillable="true" type="tns:getCodeTableDataResponse" />

正如您所看到的,wsdl 与第一行不同。配置或项目中使用的 jar 没有变化。谁能帮我解释一下为什么会发生这样的事情。尽快,我们将不胜感激,因为这必须在后天进行构建。

提前致谢阿迪尔艾玛

最佳答案

很多事情都可能导致这种情况。编码=“UTF-8”对我来说很奇怪。不确定是什么会导致该解析器看起来缺少以某种方式拾取的不同解析器。也许是不同的JDK?我不太确定。

其余的更改看起来只是架构中元素/类型的顺序和属性顺序的排序差异。在这两种情况下,答案是相同的。这些东西存储在内存中的 HashMap 中。 HashMap 的顺序无法保证,并且在不同情况下很容易发生变化。不同的解析器(见上文)可以以不同的顺序调用 put(..) ,这会影响事物。不同的 JRE 可以对它们进行不同的排序。此外,从 getClass().getMethods() 返回的 Method[] 的顺序也会产生影响(例如,IBM JDK 以与 Sun JDK 不同的顺序返回它们),因为 CXF 会以不同的顺序内省(introspection)事物。不同的编译器可能会以不同的顺序将方法放入 .class 文件中。等等....

关于java - CXF 自动生成的 wsdl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com