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