鉴于wsdl将使用不同的方法生成webservice客户端生成不同的代码?

问题描述:

假设我有WSDL文件,如下鉴于wsdl将使用不同的方法生成webservice客户端生成不同的代码?

<definitions name="HelloService" 
    targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <message name="SayHelloRequest"> 
     <part name="firstName" type="xsd:string"/> 
    </message> 

    <message name="SayHelloResponse"> 
     <part name="greeting" type="xsd:string"/> 
    </message> 

    <portType name="Hello_PortType"> 
     <operation name="sayHello"> 
     <input message="tns:SayHelloRequest"/> 
     <output message="tns:SayHelloResponse"/> 
     </operation> 
    </portType> 

    <binding name="Hello_Binding" type="tns:Hello_PortType"> 
     <soap:binding style="rpc" 
     transport="http://schemas.xmlsoap.org/soap/http"/> 
     <operation name="sayHello"> 
     <soap:operation soapAction="sayHello"/> 
     <input> 
      <soap:body 
       encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
       namespace="urn:examples:helloservice" 
       use="encoded"/> 
     </input> 

     <output> 
      <soap:body 
       encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
       namespace="urn:examples:helloservice" 
       use="encoded"/> 
     </output> 
     </operation> 
    </binding> 

    <service name="Hello_Service"> 
     <documentation>WSDL File for HelloService</documentation> 
     <port binding="tns:Hello_Binding" name="Hello_Port"> 
     <soap:address 
      location="http://www.examples.com/SayHello/" /> 
     </port> 
    </service> 
</definitions> 

如果我们使用Apacje轴的Apache CXF 1.0 或wsimport的生成Web服务客户端代码。生成的代码会不同(不包括注释)?生成的类结构或类的数量。

是的,生成的代码会有所不同。 CXF和wsimport共享JAXB XJC作为常用部分,但总体上不能将其用作一对一替换。