java.lang.ClassNotFoundException: com.xxx.PersonalUserAccount
SEVERE: Unable to deserialize into session
Jun 14, 2017 12:32:01 PM com.orangefunction.tomcat.redissessions.RedisSessionManager sessionFromSerializedData
at java.lang.Thread.run(Thread.java:745)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:22)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:430)
at org.apache.catalina.connector.Request.getSessionInternal(Request.java:2636)
at org.apache.catalina.connector.Request.doGetSession(Request.java:3022)
at com.orangefunction.tomcat.redissessions.RedisSessionManager.findSession(RedisSessionManager.java:432)
at com.orangefunction.tomcat.redissessions.RedisSessionManager.sessionFromSerializedData(RedisSessionManager.java:530)
at com.orangefunction.tomcat.redissessions.JavaSerializer.deserializeInto(JavaSerializer.java:76)
at com.orangefunction.tomcat.redissessions.RedisSession.readObjectData(RedisSession.java:119)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1074)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1608)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:151)
at java.lang.Class.forName(Class.java:278)
at java.lang.Class.forName0(Native Method)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
SEVERE: Unable to deserialize into session
Jun 14, 2017 12:32:01 PM com.orangefunction.tomcat.redissessions.RedisSessionManager sessionFromSerializedData
at java.lang.Thread.run(Thread.java:745)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve.invoke(RedisSessionHandlerValve.java:22)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:430)
at org.apache.catalina.connector.Request.getSessionInternal(Request.java:2636)
at org.apache.catalina.connector.Request.doGetSession(Request.java:3022)
at com.orangefunction.tomcat.redissessions.RedisSessionManager.findSession(RedisSessionManager.java:432)
at com.orangefunction.tomcat.redissessions.RedisSessionManager.sessionFromSerializedData(RedisSessionManager.java:530)
at com.orangefunction.tomcat.redissessions.JavaSerializer.deserializeInto(JavaSerializer.java:76)
at com.orangefunction.tomcat.redissessions.RedisSession.readObjectData(RedisSession.java:119)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1074)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1608)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:151)
at java.lang.Class.forName(Class.java:278)
at java.lang.Class.forName0(Native Method)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)
问题:这个类我的项目中没有用到,引用的jar中也没有。
解决:这个类是公司中其他项目中的,因为共用了redis,并且域名相同,所以从其他项目跳转过来的时候会带着session,取出来的信息中就有这个类。
1)可以把这个类带着包名放到当前项目中,仅供避免这个错误。
2)把session的key添加前缀,以区分不同的项目。