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>