The CXF generated code is correct per jaxws spec. If the operation looks like it's in a "wrapped" doc literal form, we unwrap the elements into individual parameters. Section 2.3.1.2 of the JAX-WS spec defines the rules for when an operation is considered wrapped so it gets unwrapped.
That said, JAX-WS also provides a binding customization to force it to non-unwrap in which case the method will look more like the Axis 1 version. Create a file with the contents: <jaxws:bindings wsdlLocation="hello_world.wsdl" xmlns="http://java.sun.com/xml/ns/jaxws"> <enableWrapperStyle>false</enableWrapperStyle> </jaxws:bindings> (update the wsdlLocation attribute) and pass that into wsdl2java with the -b flag. That should turn off the unwrapping and produce code closer to what you expect. Dan On Tuesday 07 October 2008, Alexey Zavizionov wrote: > Hello, list! > > I am in migration process to CXF from AXIS1 (v.1.4). > Let me explain my situation. > > I have a WSRP service. There are several wsdl files for generating > sources: > > wsrp-service.wsdl > > --------------------------------------------------- > <import namespace="urn:oasis:names:tc:wsrp:v2:bind" > location="wsrp-2.0-bindings.wsdl"/> > > <wsdl:service name="WSRPService"> > <wsdl:port binding="v2bind:WSRP_v2_Markup_Binding_SOAP" > name="WSRP_v2_Markup_Service"> > <soap:address location="http://my.service:8082/WSRPService"/> > </wsdl:port> > ... > --------------------------------------------------- > > wsrp-2.0-bindings.wsdl > > --------------------------------------------------- > <import namespace="urn:oasis:names:tc:wsrp:v2:intf" > location="wsrp-2.0-interfaces.wsdl"/> > > <wsdl:binding name="WSRP_v2_Markup_Binding_SOAP" > type="intf:WSRP_v2_Markup_PortType"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="getMarkup"> > <soap:operation > soapAction="urn:oasis:names:tc:wsrp:v2:getMarkup"/> <wsdl:input > name="getMarkup"> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output name="getMarkupResponse"> > <soap:body use="literal"/> > </wsdl:output> > ... > --------------------------------------------------- > > > wsrp-2.0-interfaces.wsdl > --------------------------------------------------- > <import namespace="urn:oasis:names:tc:wsrp:v2:types" > schemaLocation="wsrp-2.0-types.xsd" > > <wsdl:portType name="WSRP_v2_Markup_PortType"> > <wsdl:operation name="getMarkup"> > <wsdl:input message="intf:getMarkup" > name="getMarkup"/> <wsdl:output message="intf:getMarkupResponse" > name="getMarkupResponse"/> ... > --------------------------------------------------- > > > WSDL2Java results: > > AXIS generation result: > WSRP_v2_Markup_PortType.java > MarkupResponse > getMarkup(org.exoplatform.services.wsrp2.type.GetMarkup... > WSRP_v2_Markup_Binding_SOAPImpl (implements WSRP_v2_Markup_PortType) > WSRP_v2_Markup_Binding_SOAPStub.java (implements > WSRP_v2_Markup_PortType) > > > CXF generation result: > WSRPV2MarkupPortType.java > void > getMarkup(org.exoplatform.services.wsrp2.type.RegistrationContext > registrationContext... > WSRPV2MarkupPortTypeImpl (implements WSRPV2MarkupPortType) > WSRPV2MarkupPortType_WSRPMarkupService_Client.java > WSRPV2MarkupPortType_WSRPMarkupService_Server.java > > Why is WSRPV2MarkupPortType (CXF generation) not similar to > WSRP_v2_Markup_PortType (AXIS generation) > > Thanks and regards, > Alexey -- J. Daniel Kulp [EMAIL PROTECTED] http://www.dankulp.com/blog