cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Incorrect code generation?
Date Tue, 07 Oct 2008 15:35:01 GMT

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
dkulp@apache.org
http://www.dankulp.com/blog

Mime
View raw message