Hi:
   
   CXF support RPC Literal operation which has message part point to a 
xsd:element;
   But it seems there is a defect;
  
   First I generate a JAXWS interface from such a wsdl, and publish the JAXWS 
as service; 

   If I doesn't specifiy the origical wsdl's location and force CXF create WSDL 
only from JAXWS interface. then the new wsdl's message part point to a 
xsd:type, but not a xsd:element;

for example:

Original wsdl:
<schema>
  <xs:element name="SimpleSymbol" type="xs:string" /> 
  <xs:element name="Symbol" type="ns:SymbolType" /> 
</schema>

  <wsdl:message name="rpcEInOutRequest">
    <wsdl:part name="rpcEInOutArg" element="ns:SimpleSymbol">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="rpcEInOutResponse">
    <wsdl:part name="rpcEInOutReturn" element="ns:Symbol">
    </wsdl:part>
  </wsdl:message>

  <wsdl:portType name="rpcLiteralType">
    <wsdl:operation name="rpcEInOut">
      <wsdl:input message="axis2:rpcEInOutRequest">
    </wsdl:input>
      <wsdl:output message="axis2:rpcEInOutResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>

Generate JAXWS-Interface:
    public interface RpcLiteralType {

    @WebResult(name = "rpcEInOutReturn", targetNamespace = 
"http://anyxml.samples/";, partName = "rpcEInOutReturn")
    @WebMethod
    public SymbolType rpcEInOut(
        @WebParam(partName = "rpcEInOutArg", name = "rpcEInOutArg")
        java.lang.String rpcEInOutArg
    );
}

Created WSDL from JAXWS-interface:

    
    <wsdl:message name="rpcEInOutResponse">
       <wsdl:part name="rpcEInOutReturn" type="ns1:SymbolType" /> 
</wsdl:message>
    <wsdl:message name="rpcEInOut">
          <wsdl:part name="rpcEInOutArg" type="xsd:string" /> 
    </wsdl:message>
    <wsdl:portType name="rpcLiteralType">
    <wsdl:operation name="rpcEInOut">
      <wsdl:input message="tns:rpcEInOut" name="rpcEInOut" /> 
   <wsdl:output message="tns:rpcEInOutResponse" name="rpcEInOutResponse" /> 
</wsdl:operation>
</wsdl:portType>



Reply via email to