2009-08-26 23 views
0

私はCXF-WS 2.2.1を使用してWebサービスを開発しています。私が開発し、それ以前のサービスをテストしたが、今生成されたWSDLは、ここ1、以前と異なっていた古いものCXF自動生成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" /> 

で、古いものは、あなたが、WSDLを見ることができるように

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

のようなものです最初の行とはまったく異なっています。構成やプロジェクトで使用されているjarの変更はありません。誰もがなぜそのようなことが起きているのか、私を助けてください。できるだけ早く、これは明後日のビルドに移動しなければならないので、理解されるだろう。事前に

おかげ Adhirアイマ

答えて

3

物事の多くは、この一部を引き起こす可能性があります。エンコーディング= "UTF-8"は私にとって奇妙なものです。どういうふうに拾われた別のパーサーが不足しているのかは分かりません。たぶん異なるJDK?私は本当にわからない。

その他の変更点は、スキーマ内の要素/タイプの順序と属性の順序の違いの順序付けのように見えます。どちらの場合も、答えは同じです。これらのものはメモリ内のHashMapsに格納されます。ハッシュマップの注文は保証されておらず、様々な状況下で容易に異なる場合があります。別のパーサ(上記参照)はput(..)を異なる順序で呼び出すことができます。別のJREで異なる順序で並べ替えることができます。また、getClass()。getMethods()から返されたMethod []の順序は、CXFが物事を別の順序でイントロスペクトするため、影響を与える可能性があります(たとえば、IBM JDKはSun JDKとは異なる順序でそれらを返すことが知られています) 。別のコンパイラでは、メソッドを.classファイルに別の順序で入れることができます。その他....