Hi,
The local dev stores session information in memory so you won't get the
NotSerializableException on local dev because the local dev doesn't need to
serialize the objects that are in the session. I think that may also be the
case with glassfish and tomcat if you haven't set up a database to store
session information in. When you deploy to GAE, sessions are stored in the
datastore and thus the objects in the session have to be serialized. The
UIParameter object in your session isn't serializable but a quick glance at
the docs indicates it has saveState and restoreState methods that may be
what you are supposed to use.

Stephen
www.cortexconnect.com

On Sun, Aug 21, 2011 at 4:49 AM, nella <nella...@gmail.com> wrote:

> Hi,  I have a JSF2 app that is able to run on my local instance.  However,
> after I deployed to GAE, i encountered an object serialization runtime error
> on pages containing a UIPrameter object  (e.g.   <f:param id="param1"
> value="foo" />)
>
> I've tried the same app on glassfish (local) and tomcat (local), and they
> both run fine.  I suspect maybe it is not as simple as object serialization
> problem?  Could it be concurrent thread related issue? I can use an extra
> pair of eyes to spot what am I missing here.  Thank you
>
>
> [code]
>
> Uncaught exception from servlet
> java.lang.RuntimeException: java.io.NotSerializableException: 
> javax.faces.component.UIParameter
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java:358)
>       at 
> com.google.apphosting.runtime.jetty.DatastoreSessionStore.createEntityForSession(DatastoreSessionStore.java:71)
>       at 
> com.google.apphosting.runtime.jetty.DatastoreSessionStore.saveSession(DatastoreSessionStore.java:93)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager$AppEngineSession.save(SessionManager.java:153)
>       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:249)
>       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:262)
>       at 
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$2.handleRequest(RuntimePb.java:9819)
>       at com.google.net.rpc.impl.RpcUtil.handleRequest(RpcUtil.java:445)
>       at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:414)
>       at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:579)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:454)
>       at com.google.tracing.TraceContext.runInContext(TraceContext.java:694)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:332)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:324)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:452)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>       at java.lang.Thread.run(Thread.java:636)
> Caused by: java.io.NotSerializableException: javax.faces.component.UIParameter
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
>       at java.util.ArrayList.writeObject(ArrayList.java:673)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
>       at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1478)
>       at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1409)
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
>       at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1526)
>       at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1491)
>       at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1409)
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
>       at java.util.HashMap.writeObject(HashMap.java:1018)
>       at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
>       at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1478)
>       at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1409)
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
>       at 
> com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java:355)
>       ... 33 more
>
> [/code]
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine-java/-/BrykFku0UxEJ.
> To post to this group, send email to
> google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

-- 
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 google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to