我在tomcat上运行web应用程序时遇到堆栈跟踪错误,无法找到此异常的根本原因。
Eclipse 32 bit Luna Release (4.4.0) Tomcat 32 bit 8.0.30 jdk1.8.0_66
Jan 01, 2016 10:02:16 AM org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage
java.lang.ClassCastException: java.io.ObjectStreamClass cannot be cast to java.lang.String
at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1419)
at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:719)
at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:831)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1602)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at org.apache.catalina.session.StandardSession.doReadObject(StandardSession.java:1627)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1090)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:261)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:180)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5272)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Jan 01, 2016 10:02:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'bgx'
答案 0 :(得分:3)
我似乎遇到了同样的问题,但它不是Tomcat中的错误。这是由于属于应用程序的对象存储在HTTP会话中,该对象不可序列化,因此在持久化会话时Tomcat无法序列化。
我建议深入了解Tomcat的持久会话存储文件的内容:SESSIONS.ser,位于相应Web应用程序的Tomcat“work”目录中。
在文本编辑器中打开此二进制文件(当Tomcat关闭时!),字符串java.io.NotSerializableException的存在将识别序列化问题,文件中的位置应该提供关于哪个对象/字段的线索在持久化会话时,Tomcat无法序列化。
答案 1 :(得分:0)
我遇到了同样的问题。我为解决这个问题所做的一切就是: 首先停止tomcat,然后右键单击它,然后选择“清理”以清理tomcat的工作目录。然后我再次启动它,没有任何错误。
答案 2 :(得分:-1)
我遇到了同样的问题。 似乎是Apache Tomcat 8.0.30中的一个错误,可能是它周围的版本。
它在版本8.0.23和8.5.8中也适用于我。