2009-08-26 20 views
0

Ich entwickle Webservices using CXF-WS 2.2.1. Ich hatte entwickelt und getestet, um die Dienste früher, aber jetzt das generierte WSDL-Datei unterscheidet sich von der früher hier ist die alteCXF automatisch generiert 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" /> 

und die alte ist wie

<?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" /> 

Wie Sie die WSDL-Datei sehen können unterscheidet sich direkt von der ersten Zeile .. Ohne Änderung der Konfigurationen oder der Gläser im Projekt verwendet. Könnte mir bitte jemand helfen, warum so etwas passiert? So schnell wie möglich wäre es zu schätzen, denn das muss morgen überbaut werden.

Vielen Dank im Voraus Adhir Aima

Antwort

3

Viele Dinge könnten einige dieser verursachen. Die Codierung = "UTF-8" ist mir fremd. Ich bin mir nicht sicher, was dazu führen würde, dass jemand einen anderen Parser, der irgendwie aufgenommen wurde, nicht sehen würde. Vielleicht ein anderes JDK? Ich bin mir nicht wirklich sicher.

Der Rest der Änderungen sieht so aus, als würden die Unterschiede in der Reihenfolge der Elemente/Typen im Schema und der Reihenfolge der Attribute geordnet. In beiden Fällen ist die Antwort dieselbe. Diese Dinge werden in HashMaps im Speicher gespeichert. Die Bestellung von HashMaps ist nicht garantiert und kann unter verschiedenen Umständen leicht abweichen. Ein anderer Parser (siehe oben) kann put (..) in einer anderen Reihenfolge aufrufen, die sich auf die Dinge auswirkt. Eine andere JRE kann sie anders bestellen. Auch die Reihenfolge der von getClass() getMethods() zurückgegebenen Methode [] kann eine Auswirkung haben (IBM JDK gibt bekannt, dass sie in einer anderen Reihenfolge als das Sun JDK zurückgegeben werden), da CXF die Dinge in einer anderen Reihenfolge inspizieren würde . Ein anderer Compiler könnte die Methoden in den .class-Dateien in einer anderen Reihenfolge speichern. Usw. ....

Verwandte Themen