Nullpointer using envelope.getResponse()
Opened this issue · 31 comments
What steps will reproduce the problem?
1.I send a Soap-Request to my Webservice
2.The Webservice send me a response
3.httpresponsedump contains the full and valid response
4.envelope.bodyin is null
What is the expected output? What do you see instead?
getting anything returned when using envelope.getResponse()
java.lang.NullPointerException
at
org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerialization
Envelope.java:521)
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.
Original issue reported on code.google.com by Kostro...@googlemail.com
on 11 Jul 2012 at 1:56
Here ist my code to call it:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//adding request.addAttribute
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.setAddAdornments(false);
envelope.dotNet = true;
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(androidHttpTransport.requestDump); //The valid Response
System.out.println(envelope.bodyIn); //null
envelope.getResponse(); //NullpointerException
Original comment by Kostro...@googlemail.com
on 11 Jul 2012 at 2:00
Dont use bodyIn... use getResponse instead.
Original comment by mosa...@gmail.com
on 16 Jul 2012 at 4:34
- Changed state: Invalid
As i said, envelope.getResponse() is throwing a NullpointerException, not even
returning null.
So using it wont work obviously
Original comment by Kostro...@googlemail.com
on 16 Jul 2012 at 9:06
can you attach a stack trace with the NPE?
Original comment by mosa...@gmail.com
on 16 Jul 2012 at 10:21
Original comment by mosa...@gmail.com
on 16 Jul 2012 at 10:22
- Changed state: Started
Sure, this is is:
Caused by: java.lang.NullPointerException
at
org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerialization
Envelope.java:521)
Original comment by Kostro...@googlemail.com
on 18 Jul 2012 at 6:02
That npe is becuase bodyIn is null. Your responseDump must be null.. so you are
not actually getting a response from your server at all. Try the requestDump
with a debug tool like SoapUi and see what you get.
Original comment by mosa...@gmail.com
on 18 Jul 2012 at 7:30
The Point is, the ResponseDump is not null, there i find the valid Response.
SoapUI also returns the valid Response.
Original comment by Kostro...@googlemail.com
on 18 Jul 2012 at 11:14
I am not sure. Can you debug into the library and see what is wrong?
Original comment by mosa...@gmail.com
on 24 Aug 2012 at 11:06
Struggling with the same problem:( Using
ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar
Original comment by odan...@gmail.com
on 15 Jan 2013 at 9:46
Guys, try to set System.setProperty("http.keepAlive", "false"); in your code it
might help solving the issue.
Original comment by odan...@gmail.com
on 15 Jan 2013 at 1:08
where should we set the propery "http.keepAlive"
Original comment by rbhhere
on 28 Jan 2013 at 10:38
Before you execute your connection code.
Original comment by odan...@gmail.com
on 29 Jan 2013 at 7:08
Here is my connection code :
try{
HttpTransportSE http = new HttpTransportSE(URL, 10000);
http.debug = true;
System.setProperty("http.keepAlive", "false");
//System.setProperty("http.keepAlive", "false");
http.call(SOAP_ACTION, envelope);
}catch (IOException e1) {
e1.printStackTrace();
Log.v("IOException", e1.toString());
return "serverError";
}catch (XmlPullParserException e1) {
e1.printStackTrace();
Log.v("XmlPullParserException", e1.toString());
return "serverError";
}catch (Exception e) {
Log.v("Exception", e.toString());
return "serverError";
}
Guess setProperty("http.keepAlive", "false") doesn't fix it. Still catches
nullPointerException, not always, but some times.
Original comment by rbhhere
on 29 Jan 2013 at 7:19
I had the same problem.. :( ... I've readed that network calls must be executed
in new thread..
Source:
http://stackoverflow.com/questions/8924882/androidhttptransport-call-throwing-nu
ll-exception-when-printing-using
Original comment by calber...@gmail.com
on 5 Feb 2013 at 2:16
of course, network calls cannot be made in the UI thread. But this problem
still persists.
Original comment by rbhhere
on 6 Feb 2013 at 5:11
[deleted comment]
I had exactly the same issue.
Description of the issue :
- When server send back a faultcode that I have created, Android application
catch an IOException, then in this case envelope.bodyIn is null and Exception
is HTTP request failed, HTTP status: 500 (With version
ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar ) but, everything
working fine with the version
(ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar)
Original comment by kanazi...@gmail.com
on 26 Mar 2013 at 10:01
Hi,
I'm getting the same problem.
The code works for a little times, and after that it's getting
NullPointerException at
org.ksoap2.serialization.SoapSerializationEnvelope.getResponse(SoapSerialization
Envelope.java:521)
This is my code:
String ws = "UtilWS";
SoapObject soap = new SoapObject(URL_SOAP, "verificaDisponibilidade");
Object retorno = null;
// Cria o envelope com o objeto SOAP
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(soap);
// Cria o HttpTransport para enviar os dados (SOAP)
if(URL == null){
URL = getURL();
}
MyHttpTransport httpTransport = new MyHttpTransport(URL + ws, timeout);
try {
httpTransport.call("", envelope);
retorno = envelope.getResponse();
httpTransport.reset();
if (retorno != null) {
return true;
} else {
return false;
}
} catch (Exception e){
System.out.println("[SYNC] [ERRO] Exception no verificaDisponibilidade: " + e.getMessage());
e.printStackTrace();
return false;
}
When it works, this is my bodyIn: verificaDisponibilidadeResponse{return=MQ==; }
When it doesn't work, this is my bodyIn: null
I don't know why stop to work, I didn't anything, just my sync service, without
any new data to sync, just checking if have something new.
Sometimes works for an hour, sometimes the problem happens with 10 minutes.
Original comment by William....@gmail.com
on 8 Aug 2013 at 5:28
I've have the same issue
(ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar). An exception is
raised in HttpsTransportSE.Call()(for example with invalid login credentials).
The strange part of this when catching this exception it's null!
Than when calling the pEnvelope.getResponse() will raise a null pointer
exception.
The responseDump attribute of HttpsTransportSE is not null and is including the
fault reason. But the envelope attributes bodyIn and headerIn are both null.
It's not possible to determine the reason why something is going wrong beacuse
the exception is null and could not be cast to SoapFault. Maybe it has
something to do with the exception type?
public Object call(String pAction, SoapSerializationEnvelope pEnvelope) {
mEnvelope = pEnvelope;
if (mKeyStore != null) {
setDebug(true);
}
if (mUserName != null && mPassword != null) {
pEnvelope.headerOut = addHeaders(mUserName, mPassword);
}
try {
// Android 4.1 mobile connection disconnects on some mobile phones fix: override Connection paramater value
// "close"
List<HeaderProperty> headerList = new ArrayList<HeaderProperty>();
headerList.add(new HeaderProperty("Connection", "keep-alive"));
mHttpsConnection.call(pAction, pEnvelope, headerList);
} catch (Exception pException) { //This one is null!
Log.e(getClass().getSimpleName(), "Error occured during SOAP call");
if (pException != null) { // TODO
pException.printStackTrace();
}
if (e instanceof SoapFault) {
mFaultCode = (SoapFault) e;
}
return;
}
return pEnvelope.getResponse();
}
Original comment by peter...@gmail.com
on 28 Aug 2013 at 10:37
I had same problem with version 3.0.0
(ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar).
My problem got resolved when I moved back to version 2.6.0
(ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar)
Original comment by anil.kin...@gmail.com
on 11 Sep 2013 at 12:05
Using ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies and enclosing
the call() method in a while loop solved the problem for me.
- Iterate the call method 'n' times till you get a valid response.
Original comment by rbhhere
on 11 Sep 2013 at 4:46
Yes I was facing same issue with
ksoap2-android-assembly-3.0.0-jar-with-dependencies after that I have tried
previous version and its was working for me
Original comment by anand.so...@gmail.com
on 24 Sep 2013 at 8:02
Hello every body i have the same problem, can you helpme please)
Original comment by jhuniore...@gmail.com
on 4 Oct 2013 at 3:05
Hey Guys
I have same problem we need help
Original comment by agaoglu....@gmail.com
on 26 May 2014 at 6:17
Hello,
Use this attached latest 3.3.0 jar file, your issue will be resolved.
Just let me know weather its resolved or not...
Original comment by anand.so...@gmail.com
on 27 May 2014 at 4:55
It's a little while ago, but to solve the issue that the exception is null, is
to put your break point after the line with the catch statement and not put it
on the same line. So put the breakpoint at the first statement after the open
curly bracket of the catch block. Than the Exception isn't null anymore.
Apparently, it has something to do with the debugger.
Original comment by peter...@gmail.com
on 27 May 2014 at 1:14
thank you thank you !!!!!!!!
use ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar :D
it works ♥ ♥
Original comment by amir.lav...@gmail.com
on 2 Jul 2014 at 9:12
it is not working with ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar
:(
Original comment by iqz...@gmail.com
on 2 Apr 2015 at 1:24
how to check status codes in ksoap
Original comment by pmadh...@gmail.com
on 28 Jul 2015 at 9:34
The project is migrating to github. If you believe this issue is still valid
and should be tracked please file a new issue at
https://github.com/simpligility/ksoap2-android/issues
Original comment by mosa...@gmail.com
on 7 Aug 2015 at 5:35
- Changed state: AwaitingContribution