HttpTransportSE.call method returns NullPointerException frequently
Closed this issue · 8 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1.Set NAMESPACE AND METHOD_NAME to SoapObject and add required properties.
2.Wrap soap object in envelope
3.Make the call with the envelope
4.Catches NullPointerException at the call method 'FREQUENTLY', not always.
What is the expected output? What do you see instead?
To establish connection parameters to begin communicating with the server
hosting the web service.
What version of the product are you using? On what operating system?
ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar
Please provide any additional information below.
My calling code is :
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("data", "value");
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
try{
HttpTransportSE http = new HttpTransportSE(URL);
http.debug = true;
System.setProperty("http.keepAlive", "false");
http.call(SOAP_ACTION, envelope);
}catch (Exception e) {
Log.w("Exception", e.toString());
}
Original issue reported on code.google.com by rbhhere
on 6 Feb 2013 at 5:28
GoogleCodeExporter commented
Try with 3.0.0
Original comment by mosa...@gmail.com
on 5 Mar 2013 at 7:50
GoogleCodeExporter commented
Original comment by mosa...@gmail.com
on 5 Mar 2013 at 7:50
- Changed state: Incomplete
GoogleCodeExporter commented
Yes I used 3.0.0 RC4. . problem is fixed. You can close it then I guess
Original comment by rbhhere
on 17 Apr 2013 at 12:28
GoogleCodeExporter commented
Original comment by mosa...@gmail.com
on 17 Apr 2013 at 3:45
- Changed state: Fixed
GoogleCodeExporter commented
when trying to call webservice from android using HttpTransportSE.call method,
getting NullPointerException frequently.
Used ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar
Original comment by suma.ven...@gmail.com
on 24 Jun 2013 at 12:53
GoogleCodeExporter commented
I also had the same issue. It happens when the server traffic is at its peak.
At other times, it works fine. To overcome it, I enclosed the call() method in
a loop which will loop itself 'N' times till it returns a valid SOAP object
Original comment by raba...@c2info.com
on 25 Jun 2013 at 5:04
GoogleCodeExporter commented
int loopCount = 0, retryCount = 5;
while ( resultString.equalsIgnoreCase("serverError") && loopCount < retryCount)
{
try{
HttpTransportSE http = new HttpTransportSE(URL, 120000);
http.debug = true;
System.setProperty("http.keepAlive", "false");
http.call(SOAP_ACTION, envelope);
}catch (IOException e1) {
Log.w("IOException" , e1.toString());
resultString = "serverError";
} catch (XmlPullParserException e1) {
Log.w("XmlPullParserExc for index no :" , values[3] + " " + e1.toString());
resultString = "serverError";
} catch (Exception e) {
Log.w("Exception for index no :" , values[3] + " " + e.toString());
resultString = "serverError";
}
if(!resultString.equalsIgnoreCase("serverError")) {
SoapPrimitive soapResult = null;
try{
soapResult = (SoapPrimitive)envelope.getResponse();
}catch (SoapFault e) {
Log.w("SoapFaultExc" , e.toString());
resultString = "serverError";
}
if(soapResult != null){
resultString = soapResult.toString();
} else {
Log.w("resultString for index no " + values[3], "serverError");
resultString = "serverError";
}
}
loopCount += 1;
}
Original comment by raba...@c2info.com
on 25 Jun 2013 at 10:00
GoogleCodeExporter commented
Good job. I have the same approach and it works fine.
Original comment by mosa...@gmail.com
on 25 Jun 2013 at 2:59