Hi,
I am trying to consume a REStful web service from my web application
that is deployed under the App Engine.
I am using the Jersey framework in order to make the web service call
and I followed the steps outlined in this tutorial:
http://blogs.sun.com/enterprisetechtips/entry/consuming_restful_web_services_with.
I need to call this web service periodically and gather data which is
then entered into the App Engine data store.
The following is what I do:
In have an instance of javax.servlet.ServletContextListener which is
called upon the application start up. It spins up a background thread
by calling the start() method on an instance of a class that extends
java.lang.Thread. Then, inside the run() method of the class that
extends Thread, I have the code for calling the web service. Here's
that code. Below, the classes Client, ClientConfig,
DefaultClientConfig and WebResource are all from the Jersey framework.
try
{
ClientConfig config = new DefaultClientConfig ();
Client client = Client.create (config);
WebResource webResource = client.resource
("http://www.iobridge.com/
interface/feed/FD_0BosKdymNbB3LyiFYUVI");
String response = webResource.accept
("application/json").get
(String.class);
}
catch (Exception ex)
{
}
Here's my problem:
When I execute this code on a background thread, I get a
NullPointerException. However, if I execute it, say, in the
ServletContextListener's contextInitialized() method, then it works
fine. What is causing this to happen?
I repeated this experiment by trying to make an HTTP GET request using
plain old Java classes in the java.net package, that is, using the URL
and URLConnection classes.
URL url = new URL ("http://www.iobridge.com/interface/feed/
FD_0BosKdymNbB3LyiFYUVI");
URLConnection connection = url.openConnection ();
connection.setDoOutput (true);
connection.setRequestProperty ("Content-Type", "application/json");
BufferedReader in = new BufferedReader (new InputStreamReader
(connection.getInputStream ()));
Here too, the code does not work on a background thread but works OK
elsewhere.
Is the usage of background threads the primary cause here?
Thanks,
Viji
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.