2009-08-26 6 views
0

Je développe des services web utilisant CXF-WS 2.2.1. Je l'avais mis au point et testé les services précédents mais maintenant le fichier WSDL généré est différente de la précédente est ici l'ancienCXF autogéré 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" /> 

et l'ancien est comme

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

Comme vous pouvez le voir le wsdl est différent dès la première ligne .. Sans changement dans les configurations ou les pots utilisés dans le projet. Quelqu'un pourrait-il m'aider s'il vous plaît avec pourquoi une telle chose se produit. Dès que possible serait apprécié car cela doit passer à un jour de construction après-demain.

Merci à l'avance Adhir Aima

Répondre

3

Beaucoup de choses pourraient causer certains de cela. L'encodage = "UTF-8" est l'étrange pour moi. Je ne suis pas sûr de ce qui ferait que quelqu'un paraîtrait d'un analyseur différent. Peut-être différent JDK? Je ne suis pas vraiment sûr.

Le reste des modifications ressemble à un ordre de différences dans l'ordre des éléments/types dans le schéma et l'ordre des attributs. Dans les deux cas, la réponse est la même. Ces choses sont stockées dans HashMaps en mémoire. La commande de HashMaps n'est pas garantie et peut différer facilement dans diverses circonstances. Un analyseur différent (voir ci-dessus) peut appeler put (..) dans un ordre différent qui affecte les choses. Un JRE différent peut les commander différemment. En outre, l'ordre de la méthode [] retournée par getClass(). GetMethods() peut avoir un effet (IBM JDK est connu pour les renvoyer dans un ordre différent du Sun JDK par exemple) car CXF introspecterait les choses dans un ordre différent . Un compilateur différent pourrait placer les méthodes dans les fichiers .class dans un ordre différent. Etc ....