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
