Does Tomcat, by default, serialize a session (or anything else)?

I'm getting a NotSerializableException when attempting to perform a HttpServletRequest.forward() from inside a servlet. The NotSerializableException refers to a java bean that is called from the JSP page that is the object of the forward(). The <jsp:useBean ... > call specifies the bean's scope as "request".

The class in question is not serializable, but it should not be (at least not as far a my code is concerned). This servlet is working properly with other JSP pages and other beans that are not serializable. Of course, I could declare it serializable but it really shouldn't ever be serialized and I'd like to understand what's going on. I haven't found anything relevant in the servlet spec.

I'm currently running Tomcat/5.0.19 as a standalone server. For what it's worth, the error message (from the logfile) is below.*

*I'd appreciate any thoughts on this matter.

Thanks,
bw


------------------------------------------------------------------------
May 23, 2004 2:00:12 PM org.apache.catalina.session.StandardManager start
SEVERE: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: beaststore.SupplierOrder
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1278)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1603)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1271)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1376)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:920)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:463)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:390)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:704)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:542)
at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:348)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:652)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:253)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:850)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:638)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:320)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:875)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:727)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:477)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1008)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:394)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1134)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:832)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1126)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:521)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2345)
at org.apache.catalina.startup.Catalina.start(Catalina.java:594)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)
Caused by: java.io.NotSerializableException: beaststore.SupplierOrder
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1224)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1050)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1446)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:937)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:586)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:532)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:734)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4436)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:995)
at org.apache.catalina.core.StandardHostDeployer.remove(StandardHostDeployer.java:606)
at org.apache.catalina.core.StandardHost.remove(StandardHost.java:955)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1053)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1030)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:396)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1166)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1178)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:526)
at org.apache.catalina.core.StandardService.stop(StandardService.java:581)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:2379)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:643)
at org.apache.catalina.startup.Catalina.start(Catalina.java:618)
... 6 more

Reply via email to