tomcat java.lang.ClassCastException:无法将java. io. ObjectStreamClass强制转换为java. lang.字符串

webghufk  于 2023-02-19  发布在  Java
关注(0)|答案(3)|浏览(487)

在Tomcat上运行Web应用程序时,我收到以下stacktrace错误,无法找到此异常的根本原因。

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'
5sxhfpxr

5sxhfpxr1#

我似乎遇到了同样的问题,但这不是Tomcat中的bug,而是由于属于存储在HTTP会话中的应用程序的对象不可序列化,因此Tomcat在持久化会话时无法序列化。
我建议您仔细看看Tomcat持久会话存储文件的内容:ser,位于相应Web应用程序的Tomcat“work”目录中。
在文本编辑器中打开这个二进制文件(当Tomcat已经关闭!),字符串java.io.NotSerializableException的出现将标识序列化问题,并且文件中的位置应该给予线索,说明在持久化会话时Tomcat无法序列化哪个对象/字段。

nkcskrwz

nkcskrwz2#

我也遇到过同样的问题。我所做的解决问题的方法是:首先停止tomcat,然后右键单击,选择Clean,清理tomcat的工作目录,然后再次启动,没有出现任何错误。

wrrgggsh

wrrgggsh3#

我也遇到过同样的问题。似乎是Apache Tomcat 8.0.30的一个bug,可能是它周围的版本。
我在8.0.23版和8.5.8版中都是这样。

相关问题