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.
