java.lang.ClassCastException:无法将java.io.ObjectStreamClass强制转换为java.lang.String

编程入门 行业动态 更新时间:2024-10-27 18:17:40
本文介绍了java.lang.ClassCastException:无法将java.io.ObjectStreamClass强制转换为java.lang.String的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在tomcat上运行Web应用程序时遇到了堆栈跟踪错误,无法找到此异常的根本原因.

I am getting following stacktrace error while running web application on tomcat, unable to find root cause of this exception.

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'

推荐答案

我似乎也遇到了同样的问题,但这并不是Tomcat中的错误.这是由于属于应用程序的对象存储在HTTP会话中,该对象无法序列化,因此在持久化会话时Tomcat无法序列化.

I appear to have had the same problem but it was not a bug in Tomcat. It was due to an object belonging to the application being stored in the HTTP Session that was not serializable and which therefore Tomcat was unable to serialize when persisting sessions.

我建议对Tomcat持久会话存储文件SESSIONS.ser的内容有所了解,该文件位于相应Web应用程序的Tomcat工作"目录中.

I suggest having a gawk at the contents of Tomcat's persistent sessions storage file: SESSIONS.ser, located in the Tomcat "work" directory for the corresponding Web Application.

在文本编辑器中打开此二进制文件(当Tomcat关闭时!),字符串java.io.NotSerializableException的存在将标识序列化问题,并且文件中的下落应提供有关哪个对象/字段的线索持久会话时,Tomcat无法序列化.

Opening this binary file in a Text editor (when Tomcat has shutdown!), the presence of the string java.io.NotSerializableException will identify the serialization issue and the whereabouts in the file should give a clue as to which Object/field Tomcat was unable to serialize when persisting sessions.

更多推荐

java.lang.ClassCastException:无法将java.io.ObjectStreamClass强制转换为java.lang.String

本文发布于:2023-10-31 05:19:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1545124.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   ClassCastException   lang   java   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!