Nikita Tovstoles wrote:
> I'm using a kSOAP 1.2 client and i'm having trouble executing a method
> that takes an object
> of complex type as parameter:
>
> method:
> public void addSquareDetail(SquareDetail sd){//stuff}
Hi,
just a wild guess: Shouldnt the parameter names match the method signature
-> request.addProperty("sd", sd);
instead of
request.addProperty("SquareDetail_1", sd);
(?)
Best,
Stefan
>
> method:
> public void addSquareDetail(SquareDetail sd){//stuff}
>
> -SquareDetail is a java bean class that implements KvmSerializable
> - a mapping was added to classmap
> -legacy namespace is not an issue (i AM able to execute the following
> methods successfully
>
> over kSOAP):
> -getting one SquareDetail object
> -getting a vector of squareDetail objects
>
> Here's how i'm trying to call the 'send' method:
> ClassMap classMap = new ClassMap();
> classMap.addMapping("urn:SquareWebService/types", "SquareDetail", (new
> SquareDetail()).getClass());
> System.out.println("add one SquareDetail");
> request = new SoapObject(serviceURN, "addSquareDetail");
> sd = new SquareDetail();
> request.addProperty("SquareDetail_1", sd);
> tx = new HttpTransport(this.endPointURL, "addSquareDetail");
> tx.debug = true;
> tx.setClassMap(classMap);
> tx.call(request); //exception here
>
> (above:)
>
> private String endPointURL =
> "http://localhost:8080/SquareWebService/SquareWebService";
> protected static final String serviceURN = "urn:SquareWebService/wsdl";
>
> Error(from server, Sun ONE App Server7):
> SoapFault - faultcode: 'env:Server' faultstring: 'Internal Server Error
> (deserialization
> error: unexpected XML reader state. expected: END but found: START:
> someInt)' faultactor:
> 'null' detail: null
>
>
>
> Here are request/response dumps:
> -request---------
> <SOAP-ENV:Envelope xmlns:n0="urn:SquareWebService/types"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
> <SOAP-ENV:Body
> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <addSquareDetail xmlns="urn:SquareWebService/wsdl" id="o0"
> SOAP-ENC:root="1">
> <SquareDetail_1 xmlns="" xsi:type="n0:SquareDetail">
> <someFloat xsi:type="SOAP-ENC:float">1.5</someFloat>
> <someInt xsi:type="xsd:int">-1</someInt>
> <someString xsi:type="xsd:string">someString from
> SquareDetail</someString>
> <propertyCount xsi:type="xsd:int">4</propertyCount>
> </SquareDetail_1>
> </addSquareDetail>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> --response--------------
> <?xml version="1.0" encoding="UTF-8"?>
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns0="urn:SquareWebService/types"
> xmlns:ns1="http://java.sun.com/jax-rpc-ri/internal"
> env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><env:Body><env:Fault><faultcod
>
> e>env:Server</faultcode><faultstring>Internal Server Error
> (deserialization error:
> unexpected XML reader state. expected: END but found: START:
> someInt)</faultstring></env:Fault></env:Body></env:Envelope>
>
>
> So, apparently, the request message is not understood by the server.
> what exactly is it
>
> missing, and how can i add/correct that? (my guess in SquareDetail_1
> xmlns="" should be
>
> "urn:SquareWebService/types", although it's just a guess AND i don't
> know how to make kSOAP
>
> get it in there)
>
> I'm not sure what kind of SOAP parser my app server utilizes, but i'm
> guessing it's an
>
> apache product (how can i tell?). I also have a WSDL file available,
> should anyone be
>
> willing to look at it, please let me know
>
> thanks
> -nikita
> -nikita
>
> _______________________________________________
> Ksoap mailing list
> Ksoap@enhydra.org
> http://www.enhydra.org/mailman/listinfo.cgi/ksoap
|