You won't be able to create a thread in App Engine. It's strange that you're
getting a NullPointerException, however. This is documented here:

http://code.google.com/appengine/docs/java/overview.html

On Wed, Jan 27, 2010 at 12:53 PM, Viji Sarathy <[email protected]>wrote:

> 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]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>


-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.

Reply via email to