Works fine on App Engine locally but get (session-related?) error after deploying to production

11 views
Skip to first unread message

Charles Falconer

unread,
Apr 12, 2010, 11:59:43 PM4/12/10
to google-s...@googlegroups.com

I made the necessary changes to appengine-web.xml to get Sitebricks to run in development mode:

<sessions-enabled>true</sessions-enabled>

<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
<property name="mvel2.disable.jit" value="true"/>
</system-properties>

But after I deploy to the production site, I get this error (looks session-related but I'm not sure how exactly):

/
java.lang.RuntimeException: java.io.NotSerializableException: com.google.sitebricks.binding.HttpSessionFlashCache
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:243)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5485)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5483)
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:536)
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:404)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.NotSerializableException: com.google.sitebricks.binding.HttpSessionFlashCache
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


Any ideas?

Charles Falconer

unread,
Apr 13, 2010, 1:22:42 AM4/13/10
to google-s...@googlegroups.com
I should have mentioned that the app in question is simply the "Getting Started" example that prints "Hello".

Dhanji R. Prasanna

unread,
Apr 13, 2010, 2:00:28 AM4/13/10
to google-s...@googlegroups.com
Doh, this is unfortunate. We had a GaeFlashCache built specifically for appengine.

Try doing:

bind(FlashCache.class).to(GaeFlashCache.class).in(Singleton.class);

And see if that helps things =)

Dhanji.

Charles Falconer

unread,
Apr 13, 2010, 11:35:25 AM4/13/10
to google-s...@googlegroups.com
That worked. Thank you, Dhanji.

Now that you mention it, I see that this binding is already present in GaeModule.java but doesn't seem to have been sufficient:

http://code.google.com/p/google-sitebricks/source/browse/trunk/sitebricks/src/main/java/com/google/sitebricks/GaeModule.java

Dhanji R. Prasanna

unread,
Apr 13, 2010, 6:36:25 PM4/13/10
to google-s...@googlegroups.com
Yea Im not sure what's wrong there. Need a solid day to debug all the appengine problems on hosted and local. =(
If you can identify what's wrong that'd be great too!

Dhanji.
Reply all
Reply to author
Forward
0 new messages