Grails Tomcat无法序列化sessionid:groovy.lang.MapWithDefault的增量请求
我正在从事的Grails项目将war部署到多个Tomcat上,并启用了会话复制 除了开始在所有g:form实体中使用useToken之外,我们最近对会话进行了一些更改。(可能还有其他原因,但初步查看最近提交的所有代码都找不到任何相关信息。) 我知道下面的错误与会话对象不可序列化有关,但我不确定从哪里开始查找 有没有人在Grails中遇到过下面的错误 它可能与表单中的useToken有关吗 这是g:forms中useToken的已知限制吗?即它们不支持序列化 或者,如何查找会话中的所有对象以查看哪个对象导致此错误Grails Tomcat无法序列化sessionid:groovy.lang.MapWithDefault的增量请求,session,tomcat,grails,session-variables,Session,Tomcat,Grails,Session Variables,我正在从事的Grails项目将war部署到多个Tomcat上,并启用了会话复制 除了开始在所有g:form实体中使用useToken之外,我们最近对会话进行了一些更改。(可能还有其他原因,但初步查看最近提交的所有代码都找不到任何相关信息。) 我知道下面的错误与会话对象不可序列化有关,但我不确定从哪里开始查找 有没有人在Grails中遇到过下面的错误 它可能与表单中的useToken有关吗 这是g:forms中useToken的已知限制吗?即它们不支持序列化 或者,如何查找会话中的所有对象以查看哪
org.apache.catalina.ha.session.DeltaManager.requestCompleted Unable to serialize delta request for sessionid [6F6A26B3FF57A901F5D868FB68CA4A6F]
java.io.NotSerializableException: groovy.lang.MapWithDefault
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest.java:384)
at org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest.java:277)
at org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.java:291)
at org.apache.catalina.ha.session.DeltaManager.serializeDeltaRequest(DeltaManager.java:617)
at org.apache.catalina.ha.session.DeltaManager.requestCompleted(DeltaManager.java:1000)
at org.apache.catalina.ha.session.DeltaManager.requestCompleted(DeltaManager.java:965)
at org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java:525)
at org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationValve.java:513)
at org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMessage(ReplicationValve.java:495)
at org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(ReplicationValve.java:406)
at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:329)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
找到了答案:这是Grails2.2.1的一个已知问题 看 因此,从本质上讲,如果您在集群中使用启用会话复制的Grails 2.2.1,并且使用令牌,它将中断会话复制