RE: Wsdl2Java
Here is the target namespace wsdl:definitions name=PersonService targetNamespace=http://tempuri.org/; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsu=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:tns=http://tempuri.org/; xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing; xmlns:wsp=http://schemas.xmlsoap.org/ws/2004/09/policy; xmlns:i0=urn:emp:service xmlns:wsap=http://schemas.xmlsoap.org/ws/2004/08/addressing/policy; xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:msc=http://schemas.microsoft.com/ws/2005/12/wsdl/contract; xmlns:wsaw=http://www.w3.org/2006/05/addressing/wsdl; xmlns:soap12=http://schemas.xmlsoap.org/wsdl/soap12/; xmlns:wsa10=http://www.w3.org/2005/08/addressing; xmlns:wsx=http://schemas.xmlsoap.org/ws/2004/09/mex; Cheers, Dave From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Re: Wsdl2JavaDate: Mon, 7 May 2007 17:36:58 -0400 what is the target namespace declaration for your wsdl e.g. here is what I have for StockQuoteService.wsdl definitions targetNamespace=http://w3.ibm.com/schemas/services/2002/11/15/stockquote/wsdl; xmlns=http://schemas.xmlsoap.org/wsdl/; xmlns:tns=http://w3.ibm.com/schemas/services/2002/11/15/stockquote/wsdl; creates /src/com/ibm/w3/schemas/services/_2002/_11/_15/stockquote/wsdl/StockQuoteServiceCallbackHandler.java creates /src/com/ibm/w3/schemas/services/_2002/_11/_15/stockquote/wsdl/StockQuoteServiceStub.java??? Martin-- This email message and any files transmitted with it contain confidentialinformation intended only for the person(s) to whom this email message isaddressed. If you have received this email message in error, please notifythe sender immediately by telephone or email and destroy the originalmessage without making a copy. Thank you. - Original Message - From: David Elliott To: axis Sent: Monday, May 07, 2007 9:19 AM Subject: Wsdl2Java I am trying to have all the namespaces in the Webservice to get its own package name. Namespace Package===urn:emp:data emp.dataurn:emp:serviceemp.service When I run Wsdl2Java everything gets put in org.tempuri In looking at the documentation at: http://ws.apache.org/axis/java/reference.html I notice that the parameters are not the same as in the binary distribution. I am on a Windows XP machine. Included below is a line from the WSDL the output from Wsdl2Java the bat file running and its parameters used the resulting directory structure and filesAny help is appreciated.Dave === Here is a line from the WSDL that has the namespace I want to have as a seperate packagewsdl:import namespace=urn:emp:service location=http://localhost:9000/PersonService/Service?wsdl=wsdl0; / === D) %AXIS2_HOME%/bin/WSDL2JavaUsing AXIS2_HOME: C:\Apps\java\Libraries\Axis2\axis2-1.2Using JAVA_HOME: C:\Program Files\Java\jre1.5.0_11Usage: WSDL2Java -uri url or path : A url or path to a WSDL -o pathSpecify a directory path for the generated code. -a Generate async style code only (Default: off). -s Generate sync style code only (Default: off). Takes precedence over -a. -p pkg1 Specify a custom package name for the generated code. -l language Valid languages are java and csharp (Default: java). -t Generate a test case for the generated code. -ss Generate server side code (i.e. skeletons) (Default: off). -sd Generate service descriptor (i.e. services.xml). (Default: off). Valid with -ss. -d databinding Valid databinding(s) are adb, xmlbeans, jibx, jaxme and jaxbri (Default: adb). -g Generates all the classes. Valid only with -ss. -pn port_name Choose a specific port when there are multiple ports in the wsdl. -sn service_name Choose a specific service when there are multiple services in the wsdl. -u Unpacks the databinding classes -r pathSpecify a repository against which code is generated. -ns2p ns1=pkg1,ns2=pkg2 Specify a custom package name for each namespace specified in the wsdls schema. -ssi Generate an interface for the service implementation (Default: off). -wv WSDL Version. Valid Options : 2, 2.0, 1.1 -S Specify a directory path for generated source -R Specify a directory path for generated resources -em
Wsdl2Java
I am trying to have all the namespaces in the Webservice to get its own package name. Namespace Package === urn:emp:data emp.data urn:emp:serviceemp.service When I run Wsdl2Java everything gets put in org.tempuri In looking at the documentation at: http://ws.apache.org/axis/java/reference.html I notice that the parameters are not the same as in the binary distribution. I am on a Windows XP machine. Included below is a line from the WSDL the output from Wsdl2Java the bat file running and its parameters used the resulting directory structure and files Any help is appreciated. Dave === Here is a line from the WSDL that has the namespace I want to have as a seperate package wsdl:import namespace=urn:emp:service location=http://localhost:9000/PersonService/Service?wsdl=wsdl0; / === D) %AXIS2_HOME%/bin/WSDL2JavaUsing AXIS2_HOME: C:\Apps\java\Libraries\Axis2\axis2-1.2Using JAVA_HOME:C:\Program Files\Java\jre1.5.0_11Usage: WSDL2Java -uri url or path : A url or path to a WSDL -o pathSpecify a directory path for the generated code. -a Generate async style code only (Default: off). -s Generate sync style code only (Default: off). Takes precedence over -a. -p pkg1 Specify a custom package name for the generated code. -l language Valid languages are java and csharp (Default: java). -t Generate a test case for the generated code. -ss Generate server side code (i.e. skeletons) (Default: off). -sd Generate service descriptor (i.e. services.xml). (Default: off). Valid with -ss. -d databinding Valid databinding(s) are adb, xmlbeans, jibx, jaxme and jaxbri (Default: adb). -g Generates all the classes. Valid only with -ss. -pn port_name Choose a specific port when there are multiple ports in the wsdl. -sn service_name Choose a specific service when there are multiple services in the wsdl. -u Unpacks the databinding classes -r pathSpecify a repository against which code is generated. -ns2p ns1=pkg1,ns2=pkg2 Specify a custom package name for each namespace specified in the wsdls schema. -ssi Generate an interface for the service implementation (Default: off). -wv WSDL Version. Valid Options : 2, 2.0, 1.1 -S Specify a directory path for generated source -R Specify a directory path for generated resources -em Specify an external mapping file -f Flattens the generated files -uw Switch on un-wrapping. -xsdconfig path to file Use XMLBeans .xsdconfig file. Valid only with -d xmlbeans. === D) go.bat D) rd build /q/sD) set outdir=buildD) set src=srcD) set language=javaD) set databinding=adbD) set uri=http://localhost:9000/PersonService/Service?wsdl D) C:\Apps\java\Libraries\Axis2\axis2-1.2/bin/WSDL2Java -uri http://localhost:9000/PersonService/Service?wsdl; -o build -l java -d adb -S src -ns2p urn:emp:service=emp.service,urn:emp:data=emp.dataUsing AXIS2_HOME: C:\Apps\java\Libraries\Axis2\axis2-1.2Using JAVA_HOME: C:\Program Files\Java\jre1.5.0_11Retrieving document at 'http://localhost:9000/PersonService/Service?wsdl=wsdl0', relative to 'http://localhost:9000/PersonService/Service?wsdl'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd1', relative to 'http://localhost:9000/PersonService/Service?wsdl=wsdl0'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd2', relative to 'http://localhost:9000/PersonService/Service?wsdl=wsdl0'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd0', relative to 'http://localhost:9000/PersonService/Service?wsdl=wsdl0'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd2', relative to 'http://localhost:9000/PersonService/Service?xsd=xsd0'.Retrieving document at 'http://localhost:9000/PersonService/Service?wsdl=wsdl0', relative to 'http://localhost:9000/PersonService/Service?wsdl'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd1', relative to 'http://localhost:9000/PersonService/Service?wsdl=wsdl0'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd2', relative to 'http://localhost:9000/PersonService/Service?wsdl=wsdl0'.Retrieving schema at 'http://localhost:9000/PersonService/Service?xsd=xsd0', relative to
Sending Derived types to Webservice doesn't work
This note is a continuation of Issue with Axis when sending abstract class to .NET webservice I have change my .NET Web Service and no longer has any abstracts. It looks like public class Person{ public string name; public Address address;} public class Address{ } public class HomeAddress : Address{ public string houseNumber;} I let Axis generate the Java proxy class and I call the .NET service in the Java client as such: IEmployeeServiceProxy service = new IEmployeeServiceProxy(); HomeAddress homeAddress = new HomeAddress();homeAddress.setHouseNumber(456 Long and Winding Road); person = new Person();person.setName( Bob the Builder );person.setAddress(homeAddress); newPerson = service.getPerson( person ); For all 3 tests below, NO CHANGES were made to the .NET Webservice. Test 1: Run as isIf I examine the SOAP Request Message I see ns1:Address / with no data. - SoapRequest at 3/6/2007 2:35:41 PM -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 GetPerson xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameBob the Builder/ns1:Namens1:Address / /ns1:person/GetPerson /soapenv:Body/soapenv:Envelope Test 2: If I open the Java Proxy Class Person.java and changepublic data.emp.Address getAddress() {return address;}topublic data.emp.HomeAddress getAddress() {return (HomeAddress)address;} then this goes into the servicens1:Address xsi:type=ns1:HomeAddress ns1:HouseNumber456 Long and Winding Road/ns1:HouseNumber /ns1:Addressand this comes out Address xsi:type=HomeAddress HouseNumber456 Long and Winding Road/HouseNumber/Addresshowever the getAddress() method now returns null when trying to print in the Java client Test 3:Put getAddress() back to original code and Change all instances fromdata.emp.Addresstodata.emp.HomeAddress The correct data structure is passed in ns1:Address xsi:type=ns1:HomeAddress ns1:HouseNumber456 Long and Winding Road/ns1:HouseNumber/ns1:Address recieved Address xsi:type=HomeAddress HouseNumber456 Long and Winding Road/HouseNumber/Address and printed out successfully. Printing Returned Data... Name: Bob the Builder Addr: 456 Long and Winding Road Any thoughts are welcomed. Dave _ Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! http://spaces.live.com/spacesapi.aspx?wx_action=createwx_url=/friends.aspxmkt=en-us
RE: Issue with Axis when sending abstract class to .NET webservice
I am not sending an empty Address/ element. I am sending a HomeAddress as in my example and the Axis framework doesn't seem to want to serialize it into the soap message. This is why the received soap message is empty and this is ultimately my problem.Dave Date: Fri, 2 Mar 2007 16:04:11 -0500 From: [EMAIL PROTECTED] To: axis-user@ws.apache.org Subject: Re: Issue with Axis when sending abstract class to .NET webservice In the message that generates the fault, you send an empty Address/ element. That's not allowed: - SoapRequest at 2/27/2007 2:01:13 PM - 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 GetAdmin xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameHello World/ns1:Name ns1:Age12/ns1:Age ns1:Address / /ns1:person /GetAdmin /soapenv:Body /soapenv:Envelope On 3/2/07, David Elliott [EMAIL PROTECTED] wrote: I am sending a concrete type: HomeAddress that is derived from Address. The place holder in the class is the abstract type. This is the Java Client code being performed. HomeAddress homeAddress = new HomeAddress(); homeAddress.setHouseNumber(123 Main Street); Person person = new Person(); person.setAge(12); person.setName(Hello World); person.setAddress(homeAddress); IEmployeeServiceProxy service = new IEmployeeServiceProxy(); admin = service.getAdmin(person);Dave Date: Fri, 2 Mar 2007 09:11:03 -0500 From: [EMAIL PROTECTED] To: axis-user@ws.apache.org Subject: Re: Issue with Axis when sending abstract class to .NET webservice David, You cannot send an element of an abstract type. Your choices: - don't send the Address/ element (requires minOccurs=0) - define it as a concrete type Anne On 3/1/07, David Elliott [EMAIL PROTECTED] wrote: I am testing some interoperability between a Java Client using Axis and a .NET ASMX Webservice and am experiencing a problem and was wondering if anyone has an idea of what is going on. If I have a class that contains a data member that is abstract and try topass a derived class type into the webservice, an XML error is generated. If I receive thesame exact structure from the webservice all works as expected. I have a full .NET webservice and java client that will demonstrate theissue ifanyone wants the code. I am including the soap messages that are received on the service. The class definition follows the SOAP Messages. Thanks, Dave WebbertSolutions[at]hotmail[dot]com Good Message- don't send address in- receive address == - SoapRequest at 2/27/2007 2:01:41 PM -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 GetAdmin xmlns=urn:emp:servicens1:person xmlns:ns1=urn:emp:datans1:NameHello World/ns1:Name ns1:Age12/ns1:Age/ns1:person/GetAdmin /soapenv:Body/soapenv:Envelope - SoapResponse at 2/27/2007 2:01:41 PM -soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema;soap:Body GetAdminResponse xmlns=urn:emp:serviceGetAdminResult xsi:type=Admin xmlns=urn:emp:dataNameHello World/Name Age12/AgeAddress xsi:type=HomeAddressHouseNumber234 State Street/HouseNumber/Address HasPasswordtrue/HasPassword/GetAdminResult /GetAdminResponse/soap:Body/soap:Envelope Bad Message- populate HomeAddress- send HomeAddress in== - SoapRequest at 2/27/2007 2:01:13 PM -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 GetAdmin xmlns=urn:emp:servicens1:person xmlns:ns1=urn:emp:datans1:NameHello World/ns1:Name ns1:Age12/ns1:Agens1:Address //ns1:person /GetAdmin/soapenv:Body/soapenv:Envelope - SoapResponse at 2/27/2007 2:01:13 PM -soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema;soap:Body soap:Faultfaultcodesoap:Client/faultcode faultstringSystem.Web.Services.Protocols.SoapException:Server was unable to read request. ---System.InvalidOperationException: There is an error in XMLdocument (1, 353
RE: Issue with Axis when sending abstract class to .NET webservice
I am sending a concrete type: HomeAddress that is derived from Address. The place holder in the class is the abstract type. This is the Java Client code being performed. HomeAddress homeAddress = new HomeAddress();homeAddress.setHouseNumber(123 Main Street); Person person = new Person();person.setAge(12);person.setName(Hello World);person.setAddress(homeAddress); IEmployeeServiceProxy service = new IEmployeeServiceProxy();admin = service.getAdmin(person); Dave Date: Fri, 2 Mar 2007 09:11:03 -0500 From: [EMAIL PROTECTED] To: axis-user@ws.apache.org Subject: Re: Issue with Axis when sending abstract class to .NET webservice David, You cannot send an element of an abstract type. Your choices: - don't send the Address/ element (requires minOccurs=0) - define it as a concrete type Anne On 3/1/07, David Elliott [EMAIL PROTECTED] wrote: I am testing some interoperability between a Java Client using Axis and a .NET ASMX Webservice and am experiencing a problem and was wondering if anyone has an idea of what is going on. If I have a class that contains a data member that is abstract and try to pass a derived class type into the webservice, an XML error is generated. If I receive the same exact structure from the webservice all works as expected. I have a full .NET webservice and java client that will demonstrate the issue if anyone wants the code. I am including the soap messages that are received on the service. The class definition follows the SOAP Messages. Thanks, Dave WebbertSolutions[at]hotmail[dot]comGood Message - don't send address in - receive address == - SoapRequest at 2/27/2007 2:01:41 PM - 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 GetAdmin xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameHello World/ns1:Name ns1:Age12/ns1:Age /ns1:person /GetAdmin /soapenv:Body /soapenv:Envelope - SoapResponse at 2/27/2007 2:01:41 PM - soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; soap:Body GetAdminResponse xmlns=urn:emp:service GetAdminResult xsi:type=Admin xmlns=urn:emp:data NameHello World/Name Age12/Age Address xsi:type=HomeAddress HouseNumber234 State Street/HouseNumber /Address HasPasswordtrue/HasPassword /GetAdminResult /GetAdminResponse /soap:Body /soap:Envelope Bad Message - populate HomeAddress - send HomeAddress in ==- SoapRequest at 2/27/2007 2:01:13 PM - 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 GetAdmin xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameHello World/ns1:Name ns1:Age12/ns1:Age ns1:Address / /ns1:person /GetAdmin /soapenv:Body /soapenv:Envelope - SoapResponse at 2/27/2007 2:01:13 PM - soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; soap:Body soap:Fault faultcodesoap:Client/faultcode faultstringSystem.Web.Services.Protocols.SoapException: Server was unable to read request. --- System.InvalidOperationException: There is an error in XML document (1, 353). --- System.InvalidOperationException: The specified type is abstract: name='Address', namespace='urn:emp:data', at Address xmlns='urn:emp:data'. at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5_Address(Boolean isNullable, Boolean checkType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6_Person(Boolean isNullable, Boolean checkType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read7_GetAdmin() at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer.Deserialize(XmlSerializationReader reader) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() --- End of inner exception stack trace --- at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest
Issue with Axis when sending abstract class to .NET webservice
I am testing some interoperability between a Java Client using Axis and a .NET ASMX Webservice and am experiencing a problem and was wondering if anyone has an idea of what is going on. If I have a class that contains a data member that is abstract and try to pass a derived class type into the webservice, an XML error is generated. If I receive the same exact structure from the webservice all works as expected. I have a full .NET webservice and java client that will demonstrate the issue if anyone wants the code. I am including the soap messages that are received on the service. The class definition follows the SOAP Messages. Thanks,Dave WebbertSolutions[at]hotmail[dot]com Good Message - don't send address in- receive address== - SoapRequest at 2/27/2007 2:01:41 PM -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 GetAdmin xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameHello World/ns1:Namens1:Age12/ns1:Age /ns1:person/GetAdmin /soapenv:Body/soapenv:Envelope - SoapResponse at 2/27/2007 2:01:41 PM -soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; soap:BodyGetAdminResponse xmlns=urn:emp:service GetAdminResult xsi:type=Admin xmlns=urn:emp:dataNameHello World/NameAge12/Age Address xsi:type=HomeAddress HouseNumber234 State Street/HouseNumber/AddressHasPasswordtrue/HasPassword /GetAdminResult/GetAdminResponse /soap:Body/soap:Envelope Bad Message - populate HomeAddress- send HomeAddress in== - SoapRequest at 2/27/2007 2:01:13 PM -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 GetAdmin xmlns=urn:emp:service ns1:person xmlns:ns1=urn:emp:data ns1:NameHello World/ns1:Namens1:Age12/ns1:Age ns1:Address / /ns1:person/GetAdmin /soapenv:Body/soapenv:Envelope - SoapResponse at 2/27/2007 2:01:13 PM -soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:xsd=http://www.w3.org/2001/XMLSchema; soap:Bodysoap:Fault faultcodesoap:Client/faultcode faultstringSystem.Web.Services.Protocols.SoapException: Server was unable to read request. --- System.InvalidOperationException: There is an error in XML document (1, 353). --- System.InvalidOperationException: The specified type is abstract: name='Address', namespace='urn:emp:data', at Address xmlns='urn:emp:data'. at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5_Address(Boolean isNullable, Boolean checkType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6_Person(Boolean isNullable, Boolean checkType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read7_GetAdmin() at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer.Deserialize(XmlSerializationReader reader) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() --- End of inner exception stack trace --- at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()/faultstring detail //soap:Fault /soap:Body/soap:Envelope public abstract class PersonBase{protected PersonBase() { } private string _name; public string Name{get { return ( _name ); }set { _name = value; }}} public class Person : PersonBase{private int _age;private Address _address; public int Age{get { return ( _age ); }set { _age = value; }} public Address Address{ get { return ( _address ); }set { _address = value; }}} public abstract class Address{protected Address() { }} public class HomeAddress : Address{public HomeAddress() { } private string _houseNumber; public string HouseNumber{get { return ( _houseNumber ); }set { _houseNumber = value; }}}