Well, what I mean is that the deploy.wsdd created by WSDL2Java from the WSDL below has a service element like this:

<service name="WidgetPriceSoap" provider="java:RPC" style="document" use="literal">

when what I want is this:

<service name="WidgetPriceSoap" provider="java:RPC" style="wrapped" use="literal">

It also generates wrapper classes for each request and response message...

The extra part in the message is bound to the header in the soap:binding... Can't Axis use a wrapped convention in the service interface like this:

public void setWidgetPrice(StateIdentifier state_header, String name, String price);

??


On 11/18/05, Ravi Krishnamurthy <[EMAIL PROTECTED]> wrote:
Greg:
guess you mean document/literal and not wrapped.

May be because the message contains more than one part and the wrapped
convention needs only one part with name as parameters.

regards,
ravi

Greg Adams wrote:

> Given the following WSDL:
>
> <?xml version="1.0" encoding="utf-8"?>
> <wsdl:definitions
>     xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/"
>     xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>     xmlns:tns="urn:WidgetPrice"
>     xmlns:s="http://www.w3.org/2001/XMLSchema"
>     xmlns:http="http://schemas.xmlsoap.org/wsdl/http/ "
>     targetNamespace="urn:WidgetPrice"
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
>     <wsdl:types>
>         <s:schema elementFormDefault="qualified"
> targetNamespace="urn:WidgetPrice">
>             <s:element name="StateIdentifier">
>                 <s:complexType>
>                     <s:all>
>                         <s:element name="userContextId" type="s:string" />
>                         <s:element name="convId" type="s:string" />
>                     </s:all>
>                 </s:complexType>
>             </s:element>
>             <s:element name="setWidgetPrice">
>                 <s:complexType>
>                     <s:sequence>
>                         <s:element name="name" type="s:string" />
>                         <s:element name="price" type="s:float" />
>                     </s:sequence>
>                 </s:complexType>
>             </s:element>
>             <s:element name="setWidgetPriceResponse">
>                 <s:complexType />
>             </s:element>
>             <s:element name="getWidgetPrice">
>                 <s:complexType>
>                     <s:sequence>
>                         <s:element name="name" type="s:string" />
>                     </s:sequence>
>                 </s:complexType>
>             </s:element>
>             <s:element name="getWidgetPriceResponse">
>                 <s:complexType>
>                     <s:sequence>
>                         <s:element name="getWidgetPriceResult"
> type="s:float" />
>                     </s:sequence>
>                 </s:complexType>
>             </s:element>
>         </s:schema>
>     </wsdl:types>
>
>     <wsdl:message name="setWidgetPriceRequest">
>         <wsdl:part name="state_header" element="tns:StateIdentifier" />
>         <wsdl:part name="parameters" element="tns:setWidgetPrice" />
>     </wsdl:message>
>     <wsdl:message name="setWidgetPriceResponse">
>         <wsdl:part name="parameters"
> element="tns:setWidgetPriceResponse" />
>     </wsdl:message>
>     <wsdl:message name="getWidgetPriceRequest">
>         <wsdl:part name="state_header" element="tns:StateIdentifier" />
>         <wsdl:part name="parameters" element="tns:getWidgetPrice" />
>     </wsdl:message>
>     <wsdl:message name="getWidgetPriceResponse">
>         <wsdl:part name="parameters"
> element="tns:getWidgetPriceResponse" />
>     </wsdl:message>
>
>     <wsdl:portType name="WidgetPriceSoap">
>         <wsdl:operation name="setWidgetPrice">
>             <wsdl:input message="tns:setWidgetPriceRequest" />
>             <wsdl:output message="tns:setWidgetPriceResponse" />
>         </wsdl:operation>
>         <wsdl:operation name="getWidgetPrice">
>             <wsdl:input message="tns:getWidgetPriceRequest" />
>             <wsdl:output message="tns:getWidgetPriceResponse" />
>         </wsdl:operation>
>     </wsdl:portType>
>
>     <wsdl:binding name="WidgetPriceSoapBinding"
> type="tns:WidgetPriceSoap">
>         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http " />
>         <wsdl:operation name="setWidgetPrice">
>             <soap:operation
> soapAction="urn:WidgetPrice/setWidgetPrice" style="document"/>
>             <wsdl:input name="setWidgetPriceRequest">
>                 <soap:body parts="parameters" use="literal" />
>                 <soap:header message="tns:setWidgetPriceRequest"
> part="state_header" use="literal" />
>             </wsdl:input>
>             <wsdl:output name="setWidgetPriceResponse">
>                 <soap:body use="literal" />
>             </wsdl:output>
>         </wsdl:operation>
>         <wsdl:operation name="getWidgetPrice">
>             <soap:operation
> soapAction="urn:WidgetPrice/getWidgetPrice" style="document" />
>             <wsdl:input name="getWidgetPriceRequest">
>                 <soap:body parts="parameters" use="literal" />
>                 <soap:header message="tns:getWidgetPriceSoapIn"
> part="state_header" use="literal" />
>             </wsdl:input>
>             <wsdl:output name="getWidgetPriceResponse">
>                 <soap:body use="literal" />
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:service name="WidgetPrice">
>         <wsdl:port name="WidgetPriceSoap"
> binding="tns:WidgetPriceSoapBinding">
>             <soap:address
> location=" http://localhost:2892/NetWidgetPrice/Service.asmx" />
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
>
>
> Why does WSDL2Java automatically create a "document" style service,
> when what I want is a "wrapped" style service?
>
> Greg




Reply via email to