By default, JAX-WS (and thus CXF) creates the schemas with 
elementFormDefault=unqualified.   Thus, the "arg0" element should not be 
namespace qualified.   If  you want it qualified, then you would need to add a 
namespace parameter to the @WebParam annotation for it (assuming code first 
scenario), but keep in mind that if you do that, then the unqualified names 
would not work.   

You need to decide which form you want and set it up appropriately.   The 
other form would not work.   

One more note: what version of CXF are you using?  With 2.2.6, I'm surprised 
this gets a null passed in.   It should error out with an unknown element.

Dan


On Wednesday 17 March 2010 9:37:33 am Chris Hardin wrote:
> I have a CXF service and a user is sending a Soap message to it like this\
> 
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";>
> <soapenv:Body>
>   <getApplication  xmlns="http://services.domain.com/";>
>    <arg0 xmlns="http://services.domain.com/";>33</arg0>
>   </getApplication>
>  </soapenv:Body>
> </soapenv:Envelope>
> 
> 
> The parameter gets lost in parsing and a null gets passed to the service,
> but if I remove the xmlns elements from the tags or put it in the header
> and reference them in the tags, it works fine
> 
> This works
> 
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";>
> <soapenv:Body>
>   <getApplication>
>    <arg0>33</arg0>
>   </getApplication>
>  </soapenv:Body>
> </soapenv:Envelope>
> 
> 
> Can anyone give me a clue as to what is happening. I am lost.

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to