I didn't get a chance to comment again earlier...
Yes, adding the soapbinding fixed up the bad xml. But message names
and part names are all wrong still. They are just continuations of my
operation name. The @WebParam annotation properties seem to be
ignored.



On 8/9/07, James Mao <[EMAIL PROTECTED]> wrote:
> Hi Ray,
>
> Add @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) just
> after the @WebService, see if you can get the wsdl right
>
>
> James
>
> > I am working from the following interface...
> >
> > @WebService(targetNamespace = CurrencyExchangeNamespace.URI, name =
> > "CurrencyExchange")
> > public interface CurrencyExchange {
> >
> >     @WebResult(targetNamespace = CurrencyExchangeNamespace.URI,
> >             name = "ExchangeResponse", partName = "ExchangeResponse")
> >     ExchangeResponse getExchangeRate(
> >
> >             @WebParam(targetNamespace = CurrencyExchangeNamespace.URI,
> >                     name = "ExchangeRequest", partName =
> "ExchangeRequest")
> >             ExchangeRequest exchangeRequest
> >
> >     ) throws ExchangeFault;
> >
> > }
> >
> > Where Namespace.URI is a constant for
> > http://ws.example.com/schemas/2007/08/CurrencyExchange
> >
> > Now the WSDL cxf generates from this gets all messed up. It seems to
> > ignore my @WebParam name and partName properties.
> >
> > It creates an input called getExchangeRate and an output called
> > getExchangeRateResponse. It then actually adds complexTypes and
> > Elements to go along with it. Then it actually generates bad wsdl in
> > that it contains...
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >
> >
> > I really have no idea why, the ExchangeRequest and ExchangeResponse
> > are JAXB2 generated classes, and they are included in the schema
> > section just fine, but not used.
> >
> > I've attached the ?wsdl output. I'm pasting it below assuming it will
> > be trashed.
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> > xmlns:ns1="http://ws.example.com/schemas/2007/08/CurrencyExchange";
> > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > name="CurrencyExchangeService"
> > targetNamespace="http://ws.example.com/schemas/2007/08/CurrencyExchange";>
> >     <wsdl:types>
> >         <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> > xmlns="http://ws.example.com/schemas/2007/08/CurrencyExchange";
> > attributeFormDefault="unqualified" elementFormDefault="qualified"
> > targetNamespace="http://ws.example.com/schemas/2007/08/CurrencyExchange";>
> >             <xs:element name="ExchangeRequest">
> >                 <xs:complexType>
> >                     <xs:all>
> >                         <xs:element name="fromCurrency" type="xs:string"/>
> >                         <xs:element name="toCurrency" type="xs:string"/>
> >                     </xs:all>
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="ExchangeResponse">
> >                 <xs:complexType>
> >                     <xs:sequence>
> >                         <xs:element name="rate" type="xs:double"/>
> >                     </xs:sequence>
> >
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="FaultDetail">
> >                 <xs:complexType>
> >                     <xs:all>
> >                         <xs:element name="errorCode" type="xs:string"/>
> >                         <xs:element name="message" type="xs:string"/>
> >                     </xs:all>
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >             <xs:element name="getExchangeRate" type="getExchangeRate"/>
> >             <xs:complexType name="getExchangeRate">
> >                 <xs:sequence>
> >                     <xs:element minOccurs="0" ref="ExchangeRequest"/>
> >                 </xs:sequence>
> >
> >             </xs:complexType>
> >             <xs:element name="getExchangeRateResponse"
> > type="getExchangeRateResponse"/>
> >             <xs:complexType name="getExchangeRateResponse">
> >                 <xs:sequence>
> >                     <xs:element minOccurs="0" ref="ExchangeResponse"/>
> >                 </xs:sequence>
> >             </xs:complexType>
> >         </xs:schema>
> >     </wsdl:types>
> >     <wsdl:message name="getExchangeRate">
> >         <wsdl:part element="ns1:getExchangeRate" name="parameters">
> >         </wsdl:part>
> >     </wsdl:message>
> >
> >     <wsdl:message name="getExchangeRateResponse">
> >         <wsdl:part element="ns1:getExchangeRateResponse" name="result">
> >         </wsdl:part>
> >     </wsdl:message>
> >     <wsdl:message name="ExchangeFault">
> >         <wsdl:part element="ns1:ExchangeFault" name="fault">
> >         </wsdl:part>
> >     </wsdl:message>
> >     <wsdl:portType name="CurrencyExchange">
> >
> >         <wsdl:operation name="getExchangeRate">
> >             <wsdl:input message="ns1:getExchangeRate"
> name="getExchangeRate">
> >             </wsdl:input>
> >             <wsdl:output message="ns1:getExchangeRateResponse"
> > name="getExchangeRateResponse">
> >             </wsdl:output>
> >             <wsdl:fault message="ns1:ExchangeFault" name="ExchangeFault">
> >             </wsdl:fault>
> >         </wsdl:operation>
> >     </wsdl:portType>
> >
> >     <wsdl:binding name="CurrencyExchangeServiceSoapBinding"
> > type="ns1:CurrencyExchange">
> >         <soap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >         <wsdl:operation name="getExchangeRate">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input name="getExchangeRate">
> >                 <soap:body use="literal"/>
> >             </wsdl:input>
> >             <wsdl:output name="getExchangeRateResponse">
> >                 <soap:body use="literal"/>
> >
> >             </wsdl:output>
> >             <wsdl:fault name="ExchangeFault">
> >                 <soap:fault name="ExchangeFault" use="literal"/>
> >             </wsdl:fault>
> >         </wsdl:operation>
> >     </wsdl:binding>
> >     <wsdl:service name="CurrencyExchangeService">
> >         <wsdl:port binding="ns1:CurrencyExchangeServiceSoapBinding"
> > name="CurrencyExchange">
> >             <soap:address
> > location="http://localhost:8181/ws/soap/CurrencyExchange"/>
> >
> >         </wsdl:port>
> >     </wsdl:service>
> > </wsdl:definitions>
> >
> > ------------------------------------------------------------------------
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:ns1="http://ws.example.com/schemas/2007/08/CurrencyExchange";
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="CurrencyExchangeService"
> targetNamespace="http://ws.example.com/schemas/2007/08/CurrencyExchange";>
> >     <wsdl:types>
> >         <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns="http://ws.example.com/schemas/2007/08/CurrencyExchange";
> attributeFormDefault="unqualified" elementFormDefault="qualified"
> targetNamespace="http://ws.example.com/schemas/2007/08/CurrencyExchange";>
> >             <xs:element name="ExchangeRequest">
> >                 <xs:complexType>
> >                     <xs:all>
> >                         <xs:element name="fromCurrency" type="xs:string"/>
> >                         <xs:element name="toCurrency" type="xs:string"/>
> >                     </xs:all>
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="ExchangeResponse">
> >                 <xs:complexType>
> >                     <xs:sequence>
> >                         <xs:element name="rate" type="xs:double"/>
> >                     </xs:sequence>
> >
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="FaultDetail">
> >                 <xs:complexType>
> >                     <xs:all>
> >                         <xs:element name="errorCode" type="xs:string"/>
> >                         <xs:element name="message" type="xs:string"/>
> >                     </xs:all>
> >                 </xs:complexType>
> >             </xs:element>
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >             <xs:element name="ExchangeFault" nillable="true"/>
> >             <xs:element name="getExchangeRate" type="getExchangeRate"/>
> >             <xs:complexType name="getExchangeRate">
> >                 <xs:sequence>
> >                     <xs:element minOccurs="0" ref="ExchangeRequest"/>
> >                 </xs:sequence>
> >
> >             </xs:complexType>
> >             <xs:element name="getExchangeRateResponse"
> type="getExchangeRateResponse"/>
> >             <xs:complexType name="getExchangeRateResponse">
> >                 <xs:sequence>
> >                     <xs:element minOccurs="0" ref="ExchangeResponse"/>
> >                 </xs:sequence>
> >             </xs:complexType>
> >         </xs:schema>
> >     </wsdl:types>
> >     <wsdl:message name="getExchangeRate">
> >         <wsdl:part element="ns1:getExchangeRate" name="parameters">
> >         </wsdl:part>
> >     </wsdl:message>
> >
> >     <wsdl:message name="getExchangeRateResponse">
> >         <wsdl:part element="ns1:getExchangeRateResponse" name="result">
> >         </wsdl:part>
> >     </wsdl:message>
> >     <wsdl:message name="ExchangeFault">
> >         <wsdl:part element="ns1:ExchangeFault" name="fault">
> >         </wsdl:part>
> >     </wsdl:message>
> >     <wsdl:portType name="CurrencyExchange">
> >
> >         <wsdl:operation name="getExchangeRate">
> >             <wsdl:input message="ns1:getExchangeRate"
> name="getExchangeRate">
> >             </wsdl:input>
> >             <wsdl:output message="ns1:getExchangeRateResponse"
> name="getExchangeRateResponse">
> >             </wsdl:output>
> >             <wsdl:fault message="ns1:ExchangeFault" name="ExchangeFault">
> >             </wsdl:fault>
> >         </wsdl:operation>
> >     </wsdl:portType>
> >
> >     <wsdl:binding name="CurrencyExchangeServiceSoapBinding"
> type="ns1:CurrencyExchange">
> >         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> >         <wsdl:operation name="getExchangeRate">
> >             <soap:operation soapAction="" style="document"/>
> >             <wsdl:input name="getExchangeRate">
> >                 <soap:body use="literal"/>
> >             </wsdl:input>
> >             <wsdl:output name="getExchangeRateResponse">
> >                 <soap:body use="literal"/>
> >
> >             </wsdl:output>
> >             <wsdl:fault name="ExchangeFault">
> >                 <soap:fault name="ExchangeFault" use="literal"/>
> >             </wsdl:fault>
> >         </wsdl:operation>
> >     </wsdl:binding>
> >     <wsdl:service name="CurrencyExchangeService">
> >         <wsdl:port binding="ns1:CurrencyExchangeServiceSoapBinding"
> name="CurrencyExchange">
> >             <soap:address
> location="http://localhost:8181/ws/soap/CurrencyExchange"/>
> >
> >         </wsdl:port>
> >     </wsdl:service>
> > </wsdl:definitions>
>

Reply via email to