In particular, does the Twitter class that you're trying to store implement
Serializable? This is required since App Engine sessions are backed by
Memcache and the datastore.

- Jason

On Wed, Sep 23, 2009 at 6:21 AM, Simon <[email protected]> wrote:

>
> Can you show the code for your Twitter class?
>
> On Sep 22, 9:48 pm, Tahir Akram <[email protected]> wrote:
> > I am getting following exception while getting data from session. I
> > have following 2 servlets. One set session and other retrieve
> > attribute from it. I have also sett session enable tag in appengine
> > web xml file. (note: Using twitter4j)
> >
> > [FIRST SERVLET]
> >
> >  Twitter twitter = new Twitter();
> >                    twitter.setOAuthConsumer("<masked>", "<masked>");
> >                    RequestToken requestToken = null;
> >                 try {
> >                         requestToken = twitter.getOAuthRequestToken();
> >                         log.info("OAuth token has been taken");
> >                 } catch (TwitterException e) {
> >                         log.warning(e.toString());
> >                 }
> >
> >                 HttpSession session = request.getSession();
> >                 if (session.getAttribute("twitter")==null){
> >                         session.setAttribute("twitter", twitter);
> >                         out.println("----------------------------->
> session is set");
> >                 }
> >
> >                 if (session.getAttribute("token")==null){
> >                         session.setAttribute("token", requestToken);
> >                         out.println("----------------------------->
> session is set");
> >                 }
> >                 String authUrl = requestToken.getAuthorizationURL();
> >
> > [SECOND SERVLET]
> >
> >                         HttpSession session = request.getSession();
> >
> >                         twitter =
> (Twitter)session.getAttribute("twitter");
> >                         r  = (RequestToken)session.getAttribute("token");
> >
> >                         twitter.setOAuthAccessToken(r.getAccessToken());
> >
> >                         twitter.updateStatus("Hello World!");
> >
> > #
> > 09-22 01:34PM 12.913
> >
> > EXCEPTION
> > javax.servlet.ServletException: java.lang.ArrayStoreException:
> > [Ljava.lang.String;
> >         at
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> > (AppVersionHandlerMap.java:239)
> >         at org.mortbay.jetty.handler.HandlerWrapper.handle
> > (HandlerWrapper.java:139)
> >         at org.mortbay.jetty.Server.handle(Server.java:313)
> >         at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> > 506)
> >         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> > (HttpConnection.java:830)
> >         at
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
> > (RpcRequestParser.java:76)
> >         at
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> >         at
> >
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
> > (JettyServletEngineAdapter.java:139)
> >         at com.google.apphosting.runtime.JavaRuntime.handleRequest
> > (JavaRuntime.java:235)
> >         at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> > $6.handleBlockingRequest(RuntimePb.java:4950)
> >         at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> > $6.handleBlockingRequest(RuntimePb.java:4948)
> >         at
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> > (BlockingApplicationHandler.java:24)
> >         at
> com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> > 359)
> >         at com.google.net.rpc.impl.Server$2.run(Server.java:823)
> >         at com.google.tracing.LocalTraceSpanRunnable.run
> > (LocalTraceSpanRunnable.java:56)
> >         at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> > (LocalTraceSpanBuilder.java:516)
> >         at com.google.net.rpc.impl.Server.startRpc(Server.java:778)
> >         at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
> >         at com.google.net.rpc.impl.ServerConnection.messageReceived
> > (ServerConnection.java:437)
> >         at com.google.net.rpc.impl.RpcConnection.parseMessages
> > (RpcConnection.java:319)
> >         at com.google.net.rpc.impl.RpcConnection.dataReceived
> > (RpcConnection.java:290)
> >         at
> com.google.net.async.Connection.handleReadEvent(Connection.java:
> > 428)
> >         at com.google.net.async.EventDispatcher.processNetworkEvents
> > (EventDispatcher.java:762)
> >         at com.google.net.async.EventDispatcher.internalLoop
> > (EventDispatcher.java:207)
> >         at
> com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> > 101)
> >         at com.google.net.rpc.RpcService.runUntilServerShutdown
> > (RpcService.java:251)
> >         at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
> > (JavaRuntime.java:392)
> >         at java.lang.Thread.run(Unknown Source)
> > Caused by: java.lang.ArrayStoreException: [Ljava.lang.String;
> >         at java.io.ObjectInputStream.readArray(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
> >         at java.text.SimpleDateFormat.readObject(Unknown Source)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> >         at java.lang.reflect.Method.invoke(Unknown Source)
> >         at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.readObject(Unknown Source)
> >         at java.util.HashMap.readObject(Unknown Source)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> >         at java.lang.reflect.Method.invoke(Unknown Source)
> >         at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.readObject(Unknown Source)
> >         at com.google.apphosting.runtime.jetty.SessionManager.deserialize
> > (SessionManager.java:385)
> >         at com.google.apphosting.runtime.jetty.SessionManager.loadSession
> > (SessionManager.java:307)
> >         at com.google.apphosting.runtime.jetty.SessionManager.getSession
> > (SessionManager.java:282)
> >         at
> org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession
> > (AbstractSessionManager.java:237)
> >         at org.mortbay.jetty.Request.getSession(Request.java:998)
> >         at org.mortbay.jetty.servlet.SessionHandler.handle
> > (SessionHandler.java:192)
> >         at org.mortbay.jetty.handler.ContextHandler.handle
> > (ContextHandler.java:712)
> >         at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> > 405)
> >         at
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> > (AppVersionHandlerMap.java:237)
> >         ... 27 more
> >
> > #
> > W 09-22 01:34PM 12.920
> >
> > Nested in javax.servlet.ServletException:
> > java.lang.ArrayStoreException: [Ljava.lang.String;:
> > java.lang.ArrayStoreException: [Ljava.lang.String;
> >         at java.io.ObjectInputStream.readArray(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
> >         at java.text.SimpleDateFormat.readObject(Unknown Source)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> >         at java.lang.reflect.Method.invoke(Unknown Source)
> >         at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.readObject(Unknown Source)
> >         at java.util.HashMap.readObject(Unknown Source)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> >         at java.lang.reflect.Method.invoke(Unknown Source)
> >         at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
> >         at java.io.ObjectInputStream.readSerialData(Unknown Source)
> >         at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
> >         at java.io.ObjectInputStream.readObject0(Unknown Source)
> >         at java.io.ObjectInputStream.readObject(Unknown Source)
> >         at com.google.apphosting.runtime.jetty.SessionManager.deserialize
> > (SessionManager.java:385)
> >         at com.google.apphosting.runtime.jetty.SessionManager.loadSession
> > (SessionManager.java:307)
> >         at com.google.apphosting.runtime.jetty.SessionManager.getSession
> > (SessionManager.java:282)
> >         at
> org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession
> > (AbstractSessionManager.java:237)
> >         at org.mortbay.jetty.Request.getSession(Request.java:998)
> >         at org.mortbay.jetty.servlet.SessionHandler.handle
> > (SessionHandler.java:192)
> >         at org.mortbay.jetty.handler.ContextHandler.handle
> > (ContextHandler.java:712)
> >         at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> > 405)
> >         at
> > ...
> >
> > read more ยป
> >
>

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