android - ksoap: calling a service with argument exception -


i have soap service take argument string, , call andrid code. in example code, use asynctask that. in doinbackground method call 2 service: first 1 retrieve data (with no args), , second 1 take string argument , return void.

soapobject request = new soapobject(namespace, method_name);  soapserializationenvelope envelope = new soapserializationenvelope(         soapenvelope.ver11); envelope.setoutputsoapobject(request); httptransportse androidhttptransport = new httptransportse(url); androidhttptransport.call(soap_action, envelope); vector<soapobject> result = (vector<soapobject>) envelope         .getresponse(); request = new soapobject(namespace, method_name2); propertyinfo property=new propertyinfo(); property.setname("lastdate"); property.setvalue("2013/09/10 14:51:08"); property.setvalue(java.lang.string.class); request.addproperty(property); envelope.setoutputsoapobject(request); androidhttptransport.call(soap_action, envelope); 

but when try call second service (method_name2) obtain sequent error:

09-24 18:21:49.096: e/androidruntime(23906): fatal exception: asynctask #1 09-24 18:21:49.096: e/androidruntime(23906): java.lang.runtimeexception: error occured while executing doinbackground() 09-24 18:21:49.096: e/androidruntime(23906):    @ android.os.asynctask$3.done(asynctask.java:299) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.util.concurrent.futuretask.finishcompletion(futuretask.java:352) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.util.concurrent.futuretask.setexception(futuretask.java:219)  09-24 18:21:49.096: e/androidruntime(23906):   @ java.util.concurrent.futuretask.run(futuretask.java:239) 09-24 18:21:49.096: e/androidruntime(23906):    @ android.os.asynctask$serialexecutor$1.run(asynctask.java:230) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1080) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:573) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.lang.thread.run(thread.java:841) 09-24 18:21:49.096: e/androidruntime(23906): caused by: java.lang.runtimeexception: cannot serialize: class java.lang.string 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writeelement(soapserializationenvelope.java:664) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writeproperty(soapserializationenvelope.java:649) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writeobjectbody(soapserializationenvelope.java:595) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writeobjectbody(soapserializationenvelope.java:573) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writeelement(soapserializationenvelope.java:658) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.serialization.soapserializationenvelope.writebody(soapserializationenvelope.java:555) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.soapenvelope.write(soapenvelope.java:205) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.transport.transport.createrequestdata(transport.java:134) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.transport.httptransportse.call(httptransportse.java:144) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.transport.httptransportse.call(httptransportse.java:116) 09-24 18:21:49.096: e/androidruntime(23906):    @ org.ksoap2.transport.httptransportse.call(httptransportse.java:111) 09-24 18:21:49.096: e/androidruntime(23906):    @ com.example.soapclient.downloaddatatask.doinbackground(downloaddatatask.java:60) 09-24 18:21:49.096: e/androidruntime(23906):    @ com.example.soapclient.downloaddatatask.doinbackground(downloaddatatask.java:1) 09-24 18:21:49.096: e/androidruntime(23906):    @ android.os.asynctask$2.call(asynctask.java:287) 09-24 18:21:49.096: e/androidruntime(23906):    @ java.util.concurrent.futuretask.run(futuretask.java:234) 09-24 18:21:49.096: e/androidruntime(23906):    ... 4 more 

what's wrong?

i think problem httptransportse not closing first connection so:

httptransportse http = new httptransportse(url); system.setproperty("http.keepalive", "false");  http.call(soap_action, envelope); 

i tested , works! best regards!


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -