And the answer was the form of attributes and elements. Changing the wsdl file to read as below fixed the issue.
The cause of the problem was that the client library wasn't able to control (set unqualified or qualified) the form of the elements and attributes. The libraries default was different to the default for SMX3.3. Added an explicit declaration to match the client's implementation corrected the problem. <xsd:schema targetNamespace="http://some.dom.com/soap/soapservice" attributeFormDefault="qualified" elementFormDefault="qualified"> ... </xsd:schema> -----Original Message----- From: Stuart Roe [mailto:[email protected]] Sent: 08 May 2009 15:27 To: [email protected] Subject: Help with cxf missing parameters Hope someone can help. I have configured (WSDL first) cxfbc and cxfse to operate with the following wsdl. The stub files created by wsdl2java are being called but the supplied parameters are null (when the client provided non-null parameters). The parameters (product and qty) can be seen in the packet dump below. I have also included a copy of the wsdl file used to create the stub files. As the appropriate SE function in the stub is being called I'm assuming that the xbean configuration for both BC and SE are correct. Environment: WinXP, SMX 3.3, SMX-CXFBC/SE 2008.01. Please let me know if I'm wrong here or if further information is required. Stuart. Packet dump: POST /soap/sscc HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS .NET CF Web Services Client Protocol 1.0.4292.0) Cache-Control: No-Transform SOAPAction: " <http://some.dom.com/soap/soapservice/createLabel> http://some.dom.com/soap/soapservice/createLabel" Content-Type: text/xml; charset=utf-8 Content-Length: 350 Connection: Keep-Alive Expect: 100-continue Host: 192.168.1.2 <soap:Envelope xmlns:soap=" <http://schemas.xmlsoap.org/soap/envelope/> http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi=" <http://www.w3.org/2001/XMLSchema-instance> http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=" <http://www.w3.org/2001/XMLSchema> http://www.w3.org/2001/XMLSchema"><soap:Body><createLabel xmlns=" <http://some.dom.com/soap/soapservice> http://some.dom.com/soap/soapservice"><product><ref>Hello </ref></product><qty><qty1>world</qty1></qty></createLabel></soap:Body></soa p:Envelope> Here is the WSDL file used to create the server source files: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:p=" <http://schemas.xmlsoap.org/wsdl/soap/> http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap=" <http://some.dom.com/soap/soapservice> http://some.dom.com/soap/soapservice" xmlns:wsdl=" <http://schemas.xmlsoap.org/wsdl/> http://schemas.xmlsoap.org/wsdl/" xmlns:xsd=" <http://www.w3.org/2001/XMLSchema> http://www.w3.org/2001/XMLSchema" name="soap" targetNamespace=" <http://some.dom.com/soap/soapservice> http://some.dom.com/soap/soapservice"> <wsdl:types> <xsd:schema targetNamespace=" <http://some.dom.com/soap/soapservice> http://some.dom.com/soap/soapservice"> <xsd:complexType name="product"> <xsd:sequence> <xsd:element name="ref" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="qty"> <xsd:sequence> <xsd:element name="qty" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:element name="createLabel"> <xsd:complexType> <xsd:sequence> <xsd:element name="product" type="soap:product" /> <xsd:element name="qty" type="soap:qty" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="createLabelResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="status" type="xsd:integer" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="createLabelRequest"> <wsdl:part element="soap:createLabel" name="parameters"/> </wsdl:message> <wsdl:message name="createLabelResponse"> <wsdl:part element="soap:createLabelResponse" name="parameters"/> </wsdl:message> <wsdl:portType name="SOAPPort"> <wsdl:operation name="createLabel"> <wsdl:input message="soap:createLabelRequest"/> <wsdl:output message="soap:createLabelResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="soapSOAPBinding" type="soap:SOAPPort"> <p:binding style="document" transport=" <http://schemas.xmlsoap.org/soap/http> http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="createLabel"> <p:operation soapAction=" <http://some.dom.com/soap/soapservice/createLabel> http://some.dom.com/soap/soapservice/createLabel"/> <wsdl:input> <p:body use="literal"/> </wsdl:input> <wsdl:output> <p:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="soapService"> <wsdl:port binding="soap:soapSOAPBinding" name="soapSOAP"> <p:address location=" <http://localhost:81/soap/sscc> http://localhost:81/soap/sscc"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
