The User isn't serializable. Are you using the standard User class or a custom User class?
On Tue, Jun 1, 2010 at 8:03 PM, Shawn Draper <[email protected]> wrote: > I am storing user-profile information in the data store and retrieving > with the following code: > > public static User getUserByID ( String userName ) throws Exception > { > PersistenceManager mgr = PMF.getInstance > ( ).getPersistenceManager ( ); > Query query = mgr.newQuery ( User.class ); > query.setFilter ( "userName == param" ); > query.declareParameters ( "String param" ); > > try > { > List <User> results = (List <User>) query.execute > ( userName ); > Iterator <User> i = results.iterator ( ); > if ( i.hasNext ( ) ) > return mgr.detachCopy ( i.next ( ) ); > else > throw new Exception ( "Unable to locate user [" + > userName + "]" ); > } > finally > { > query.closeAll ( ); > mgr.close ( ); > } > } > > I'm storing the data in the HttpSession object with the following > code: > > req.getSession ( true ).setAttribute ( "USER", user ); > log ( "Session data loaded. Redirecting to " + nxtactn + "..." ); > resp.sendRedirect ( nxtactn ); > > The following Exception is thrown when the Servlet redirects. > > /Login > java.lang.RuntimeException: java.io.NotSerializableException: > org.datanucleus.store.appengine.query.LazyResult > at > > com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java: > 361) > at > > com.google.apphosting.runtime.jetty.SessionManager.createEntityForSession(SessionManager.java: > 341) > at com.google.apphosting.runtime.jetty.SessionManager > $AppEngineSession.save(SessionManager.java:162) > at > > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > 41) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) > at > > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: > 238) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 542) > at org.mortbay.jetty.HttpConnection > $RequestHandler.headerComplete(HttpConnection.java:923) > at > > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: > 76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: > 135) > at > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > 250) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5838) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5836) > at > > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: > 24) > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > 398) > at com.google.net.rpc.impl.Server$2.run(Server.java:852) > at > com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: > 56) > at > > com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: > 576) > at com.google.net.rpc.impl.Server.startRpc(Server.java:807) > at com.google.net.rpc.impl.Server.processRequest(Server.java:369) > at > > com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: > 442) > 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: > 474) > at > > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: > 831) > at > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: > 207) > at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: > 103) > at > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: > 251) > at com.google.apphosting.runtime.JavaRuntime > $RpcRunnable.run(JavaRuntime.java:413) > at java.lang.Thread.run(Unknown Source) > Caused by: java.io.NotSerializableException: > org.datanucleus.store.appengine.query.LazyResult > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > at java.io.ObjectOutputStream.writeObject(Unknown Source) > at java.util.HashMap.writeObject(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.invokeWriteObject(Unknown Source) > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > at java.io.ObjectOutputStream.writeObject(Unknown Source) > at > > com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java: > 358) > ... 39 more > > Does anyone have any ideas on why this would be happening? > > Thank you in advance for your help. > > Shawn > > -- > 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 Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine -- 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.
