Version 2.1

We don't use java2wsdl directly.

We use Spring and the jaxws:endpoint tag

/Chr



-----Original Message-----
From: Benson Margulies [mailto:[email protected]] 
Sent: 19. december 2008 14:43
To: [email protected]
Subject: Re: Figuring out why params turn to null

What version of CXF? What command-line args to java2wsdl?

On Thu, Dec 18, 2008 at 5:41 PM, Christian Landbo Frederiksen
<[email protected]> wrote:
> OK Thanks.
>
> So now I try change it to qualified, since I have a client (Delphi) that
> cannot handle this.
>
> Searching for how to do this I saw the package-info.java thing.
>
> So I put a package-info.java file into the package of the service with
> this content:
>
> @javax.xml.bind.annotation.XmlSchema(
>                namespace = "http://echo/2008/11/16";,
>
> attributeFormDefault=javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED,
>
> elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
> package dk.something;
>
>
> But nothing happens to the generated WSDL it still has both set to
> unqualified.
>
> Am I missing something or is there another way?
>
> /Chr
>
> -----Original Message-----
> From: Daniel Kulp [mailto:[email protected]]
> Sent: 15. december 2008 17:52
> To: [email protected]
> Cc: Christian Landbo Frederiksen
> Subject: Re: Figuring out why params turn to null
>
>
> The schema has:
>
> <xs:schema attributeFormDefault="unqualified"
>   elementFormDefault="unqualified"
>
> Thus, the "hello" child element MUST be unqualified.  That's per the
> schema
> rules.   If it's sent qualified, then it doesn't match the schema.
>
> Dan
>
>
>
>
> On Monday 15 December 2008 9:57:19 am Christian Landbo Frederiksen
> wrote:
>> I am using CXF 2.1
>>
>>
>>
>> I expose a java class/method like this
>>
>>
>>
>> @WebService(name="EchoService",
>> targetNamespace="http://echo.dk/2008/11/16";)
>>
>> public interface EchoService {
>>
>>
>>
>>             @WebMethod
>>
>>             public String echo(@WebParam(name = "hello") String hello)
>>
>>
>>
>>
>>
>> This turns into this wsdl:
>>
>>
>>
>> <xs:schema attributeFormDefault="unqualified"
>> elementFormDefault="unqualified"
>> targetNamespace="http://echo.dk/2008/11/16";
>> xmlns="http://echo.dk/2008/11/16";
>> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>>
>>       <xs:element name="echo" type="echo"/>
>>
>>       <xs:complexType name="echo">
>>
>>         <xs:sequence>
>>
>>           <xs:element minOccurs="0" name="hello" type="xs:string"/>
>>
>>         </xs:sequence>
>>
>>       </xs:complexType>
>>
>>       <xs:element name="echoResponse" type="echoResponse"/>
>>
>>       <xs:complexType name="echoResponse">
>>
>>         <xs:sequence>
>>
>>           <xs:element minOccurs="0" name="return" type="xs:string"/>
>>
>>         </xs:sequence>
>>
>>       </xs:complexType>
>>
>>     </xs:schema>
>>
>>
>>
>>
>>
>> Can successfully be called in SOAP-UI:
>>
>>
>>
>> <soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>> xmlns:ns="http://optagelse.dk/2008/11/16";>
>>
>>    <soapenv:Header/>
>>
>>    <soapenv:Body>
>>
>>       <ns:echo>
>>
>>                                             <hello>Champ</hello>
>>
>>       </ns:echo>
>>
>>    </soapenv:Body>
>>
>> </soapenv:Envelope>
>>
>>
>>
>> But another client generates this:
>>
>>
>>
>> <soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
>>
>>    <soapenv:Header/>
>>
>>    <soapenv:Body>
>>
>>       <echo xmlns="http://optagelse.dk/2008/11/16";>
>>
>>                                             <hello>Champ</hello>
>>
>>       </echo>
>>
>>    </soapenv:Body>
>>
>> </soapenv:Envelope>
>>
>>
>>
>> And this results in the param being null in the method
>>
>>
>>
>> The problem is that the param only works when it is given without
>> namespace.
>>
>> ns:hello gives the same result in the first example.
>>
>>
>>
>> Is this not a bug? The schema in the wsdl has targetNamespace set so
> you
>> would assume that the client namespace on the param would work.
>>
>>
>>
>> /Chr
>
>
>
> --
> Daniel Kulp
> [email protected]
> http://dankulp.com/blog
>

Reply via email to