I am using CXF 2.0.4 on both client and server. I have a simple server interface derived from one of the samples (see below). When I try to call the "deleteCustomer" function using the CXF 2.0.4 wsdl2java client, the first element of the paramArray passed into org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation() is null. If I use Microsoft's WCF, I don't have this problem.
The difference between the two requests is the namespace prefix on the tags in the method invocation. If I remove them and do a manual post using wget, the call succeeds. WCF: <s:Envelope xmlns:s=" http://schemas.xmlsoap.org/soap/envelope/"><s:Body><deleteCustomer xmlns=" http://customer.acme.com"><id>4300</id></deleteCustomer></s:Body></s:Envelope > CXF client: <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:deleteCustomerxmlns:ns2=" http://customer.acme.com"><id>4300</id></ns2:deleteCustomer></soap:Body></soap:Envelope><s:Envelope xmlns:s=" http://schemas.xmlsoap.org/soap/envelope/"><s:Body><deleteCustomer><id>4300</id></deleteCustomer> </s:Body></s:Envelope> Any ideas on how I might be able to solve this problem? Or is this just a bug? Thanks, -mike =============================== @WebService(targetNamespace = "http://customer.acme.com") public interface CustomerService { [ ... Other methods ...] @Delete @HttpResource(location = "/customers/{id}") void deleteCustomer(@WebParam(name = "id") long id) throws CustomerNotFoundFault; } The client interface that is generated from wsdl2java is: @WebService(targetNamespace = "http://customer.acme.com", name = "CustomerService") public interface CustomerService { [... Other methods ...] @RequestWrapper(localName = "deleteCustomer", targetNamespace = " http://customer.acme.com", className = "com.acme.customer.DeleteCustomer") @ResponseWrapper(localName = "deleteCustomerResponse", targetNamespace = "http://customer.acme.com", className = " com.acme.customer.DeleteCustomerResponse") @WebMethod public void deleteCustomer( @WebParam(name = "id", targetNamespace = "http://customer.acme.com") long id ); };
