1

我在 catalina.out 中使用 tomcat 5.5 运行集群我一直看到错误 [错误] 无法序列化 sessionid 的增量请求 [DBBAF413162AE8B1AA1DB011CFA689C5.worker1]

我试图返回并确保放入会话中的所有对象都是可序列化的,但这是一个非常大的应用程序,所以我一定遗漏了一些东西。

无论如何我可以获得更多关于可能有问题的对象是什么的信息?谢谢兰迪

2012-07-03 11:35:26 DeltaManager [错误] 无法序列化 sessionid [DBBAF413162AE8B1AA1DB011CFA689C5.worker1] java.io.NotSerializableException 的增量请求:org.apache.catalina.core.ApplicationContextFacade at java.io.ObjectOutputStream.writeObject0( ObjectOutputStream.java:1081) 在 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) 在 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) 在 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) ) 在 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) 在 java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) 在 org.apache.catalina.cluster.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest. java:346) 在 org.apache.catalina。cluster.session.DeltaRequest.writeExternal(DeltaRequest.java:263) at org.apache.catalina.cluster.session.DeltaManager.unloadDeltaRequest(DeltaManager.java:695) at org.apache.catalina.cluster.session.DeltaManager.requestCompleted( DeltaManager.java:1249) at org.apache.catalina.cluster.tcp.ReplicationValve.sendSessionReplicationMessage(ReplicationValve.java:328) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:271) at org .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve .java:107) 在 org.apache.jk 的 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)。server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)在 org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684) 在 org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) 在 org.apache.tomcat.util.threads .ThreadPool$ControlRunnable.run(ThreadPool.java:684) 在 java.lang.Thread.run(Thread.java:595)common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java: 595)common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java: 595)

4

2 回答 2

0

堆栈跟踪告诉您有问题的对象是 ApplicationContextFacade。查看将对象放入会话中的代码(通常通过调用 HttpServletSession.put())并查看这些对象是否包含 ApplicationContextFacade 或 ServletContext 类型的实例变量。还要查看任何嵌套对象。

于 2012-07-03T19:14:53.323 回答
0

我遇到了几乎相同的错误,除了我从错误日志中收到一封随机电子邮件。它在一个一般区域中随机弹出,但在我跟踪任何特定的代码行时却没有。

记录器 = org.apache.catalina.ha.session.DeltaManager

消息 = 无法序列化 sessionid 的增量请求

堆栈跟踪开始于

java.io.NotSerializableException: org.mycompany.SomeRandomPojo
    at java.io.ObjectOutputStream.writeObject
    ...
    ...
    no other objects from MyCompany anywhere in the stack trace

无论出于何种原因,我对项目所做的最新更改导致应用程序突然对 SomeRandomPojo 不可序列化感到不满。我让它实现了可序列化,然后第二个密切相关的对象弹出了同样的错误。我使该对象实现可序列化,并且该项目位于绿条上。去搞清楚。嗯,我这周刚刚将 Intellij 升级到了 2020.2.3,这可能是我从那以后第一次像这样运行这个测试。

于 2020-11-04T20:30:02.267 回答