May I ask why in the xml returned by the webservice (for complex type) there is a xmlns:ns2 since in Michael's original wsdl there is only one xmlns:tns="http://localhost/services/person" available ?
On Sun, 2007-06-05 at 19:43 +0000, Michael Drejer wrote: > I'm defining a complex type in wsdl and using xfire eclipse plugin to > generate > java sources. Using tcptrace to see the communication between client and > webservice i can see that there is actually an xml document returned with the > expected test-data. Still, making a client by either doing: > > PersonService service = new PersonServiceClient().getPersonServiceSOAPDev(); > > or > > Service serviceModel = new AnnotationServiceFactory().create > (PersonService.class); > PersonService service = (PersonService) new XFireProxyFactory().create > (serviceModel, "http://localhost/webservicetest/services/PersonService"); > > and using the methods in 'service' returns an object of the xfire generated > class but with null values. For compare I've made a webservice in same wsdl > with simple type returned, and this works as expected. > > So what have i done wrong or is it simply not possible to get complex types > returned from webservice using client? > > > /Michael > > for reference: > > > xml returned be the webservice (simple type): > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema- > instance"><soap:Body><GetPersonFirstnameResponse > xmlns="http://localhost/services/person"><personFirstname > xmlns="">Michael</personFirstname></GetPersonFirstnameResponse></soap:Body></soa > p:Envelope> > > > xml returned be the webservice (complex type): > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema- > instance"><soap:Body><GetPersonResponse > xmlns="http://localhost/services/person"> > b0 > <ns2:person > xmlns:ns2="http://localhost/services/person"><id>1</id><firstname>John</firstnam > e><lastname>Jensen</lastname><active>true</active><country>dk</country></ns2:per > son> > 30 > </GetPersonResponse></soap:Body></soap:Envelope> > > > > My wsdl: > > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > xmlns:tns="http://localhost/services/person" name="localhost" > targetNamespace="http://localhost/services/person"> > > <xs:complexType name="Person"> > <xs:all> > <xs:element name="id" form="unqualified" nillable="false"> > <xs:simpleType> > <xs:restriction base="xs:int"> > <xs:minInclusive value="0"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="firstname" form="unqualified" nillable="false"> > <xs:simpleType> > <xs:restriction base="xs:string"/> > </xs:simpleType> > </xs:element> > <xs:element name="lastname" form="unqualified" nillable="false"> > <xs:simpleType> > <xs:restriction base="xs:string"/> > </xs:simpleType> > </xs:element> > <xs:element name="active" form="unqualified" nillable="false"> > <xs:simpleType> > <xs:restriction base="xs:boolean"> > </xs:restriction> > </xs:simpleType> > </xs:element> > <xs:element name="country" form="unqualified" nillable="false"> > <xs:simpleType> > <xs:restriction base="xs:string"> > <xs:length value="2"/> > <xs:whiteSpace value="collapse"/> > </xs:restriction> > </xs:simpleType> > </xs:element> > </xs:all> > </xs:complexType> > > <wsdl:message name="PersonId"> > <wsdl:part name="personId" type="xs:int"/> > </wsdl:message> > <wsdl:message name="Person"> > <wsdl:part name="person" type="tns:Person"/> > </wsdl:message> > <wsdl:message name="PersonFirstname"> > <wsdl:part name="personFirstname" type="xs:string"/> > </wsdl:message> > > <wsdl:portType name="PersonService"> > <wsdl:operation name="GetPerson"> > <wsdl:input message="tns:PersonId"/> > <wsdl:output message="tns:Person"/> > </wsdl:operation> > <wsdl:operation name="GetPersonFirstname"> > <wsdl:input message="tns:PersonId"/> > <wsdl:output message="tns:PersonFirstname"/> > </wsdl:operation> > </wsdl:portType> > > <wsdl:binding name="PersonServiceSOAP" type="tns:PersonService"> > <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="GetPerson"> > <soap:operation soapAction="http://localhost/services/person/GetPerson"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="GetPersonFirstname"> > <soap:operation > soapAction="http://localhost/services/person/GetPersonFirstname"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > > <wsdl:service name="PersonService"> > <wsdl:port name="PersonServiceSOAPDev" binding="tns:PersonServiceSOAP"> > <soap:address > location="http://localhost/webservicetest/services/PersonService"/> > </wsdl:port> > </wsdl:service> > > </wsdl:definitions> > > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email > --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
