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>