I need to add a timeout to a J2ME application that uses ksoap 2 to connect to a web service.
I've tried the method described as a possible pseudo timeout at http://ksoap2.sourceforge.net/doc/api/org/ksoap2/transport/HttpTransport.html, but it doesn't seem to function on this device.
I'd run the connection on another thread and kill it if a timer fires but there's no way to kill a thread before it finishes executing in J2ME per http://developers.sun.com/mobility/midp/articles/threading2/ (this is an embedded device, so I can't just leave an indefinite number of threads blocking in the background). I can't use the poll a boolean method since it's the single attempt to open the connection that blocks.
The system timeout seems to vary between device modal and is too long for my purposes.
Does anybody have any thoughts as to something that might work?
Keep in mind you are not dealing with fully functional computers. On some devices, you just can't interrupt network operations, especially the TCP connect.
This is what we do,
This works great on all emulators but the connection thread doesn't get the exception till 5 minutes later on some phones.
Could mention that I made a modification to the KSoap2 v2.5.2 to support timeout for HttpTransportSE class. It will throw a SocketTimeoutException when timeout occurs.
It's both jar and src is found at this url http://www.lightsoft.se/?p=707
I ended up using the Socket class which has the setSoTimeout() method.