android - Ksoap2 send complex type in request issue -
i'm develop client (proxy) webservice (is test call axis webservices). xsd is:
<complextype name="getpermissionsrequest"> <sequence> <element name="idemploye" type="string"></element> </sequence> </complextype> <complextype name="getpermissionsresponse"> <sequence> <element name="permissions" type="tns:permission" maxoccurs="unbounded" minoccurs="0"></element> </sequence> </complextype> <complextype name="permission"> <sequence> <element name="idemploye" type="string"></element> <element name="idsystem" type="string"></element> </sequence> </complextype> <element name="getpermissionsrequest" type="tns:getpermissionsrequest"> </element> <element name="getpermissionsresponse" type="tns:getpermissionsresponse"> </element>
the part of code add complex type on request is:
soapobject request = new soapobject(namespace, method_name); getpermissionsrequest p = new getpermissionsrequest(); p.setidemploye("1"); request.addproperty("getpermissionsrequest", p); soapserializationenvelope envelope = new soapserializationenvelope(soapenvelope.ver11); envelope.dotnet = false; envelope.addmapping(namespace, "getpermissionsrequest", p.getclass()); envelope.setoutputsoapobject(request); httptransportse ht = new httptransportse(url); ht.debug = true; try { ht.call(soap_action + method_name, envelope); } catch (ioexception e) { e.printstacktrace(); } catch (xmlpullparserexception e) { e.printstacktrace(); }
my object implements kvmserializable:
import java.util.hashtable; import org.ksoap2.serialization.kvmserializable; import org.ksoap2.serialization.propertyinfo; public class getpermissionsrequest implements kvmserializable { private string idemploye; public getpermissionsrequest() {} public getpermissionsrequest(string id) { this.idemploye = id; } public void setidemploye(string id) { this.idemploye = id; } public string getidemploye() { return this.idemploye;} public object getproperty(int arg0) { switch(arg0) { case 0: return idemploye; } return null; } public int getpropertycount() { return 1; } public void getpropertyinfo(int index, hashtable arg1, propertyinfo propertyinfo) { switch(index){ case 0: propertyinfo.name = "idemploye"; propertyinfo.type = propertyinfo.string_class; break; default: break; } } public void setproperty(int index, object value) { switch(index) { case 0: this.idemploye = value.tostring(); break; default: break; } } }
but, when run, exception:
java.io.ioexception: bufferedinputstream closed @ java.io.bufferedinputstream.streamclosed(bufferedinputstream.java:116) @ java.io.bufferedinputstream.read(bufferedinputstream.java:294) gc_concurrent freed 326k, 51% free 2817k/5703k, external 201k/659k, paused 1ms+1ms @ org.ksoap2.transport.httptransportse.readdebug(httptransportse.java:273) @ org.ksoap2.transport.httptransportse.call(httptransportse.java:241) @ org.ksoap2.transport.httptransportse.call(httptransportse.java:116) @ org.ksoap2.transport.httptransportse.call(httptransportse.java:111)
can me?
thanks!!! mateus
Comments
Post a Comment