Сообщение об исключении сериализации Java - PullRequest
0 голосов
/ 02 марта 2011

При локальном запуске приложения на моем компьютере приложение работает отлично.При развертывании в QA появляется ошибка ниже.Я использую Tomcat 5.5.23 локально и в QA.Приложение также использует Spring MVC.

ОШИБКА 2011-03-01 16:41:42: Исключительные сеансы загрузки из постоянного хранилища java.io.WriteAbortedException: запись прервана;java.io.NotSerializableException: com.everbank.uft.entities.ldc.VoidReason at java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1333) в java.io.ObjectInputStream.readObject (ObjectInputStream.java:351 at)util.ArrayList.readObject (ArrayList.java:593) в sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.jmp.Impho.Imphoid.java: 25) в java.lang.reflect.Method.invoke (Method.java:597) в java.io.ObjectStreamClass.invokeReadObject (ObjectStreamClass.java:974) в java.io.ObjectInputStream.readSerialData (ObjectInputStream.jj) в java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1753) в java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1329) в java.io.ObjectInputStream.readObject (ObjectInputStape1g) или.catalina.session.StandardSession.readObject (StandardSession.java:1402) at org.apache.catalina.session.StandardSession.readObjectData (StandardSession.java:931) в org.apache.catalina.session.StandardManager.doLoad (StandardManager.java:394) в org.apache.catalina.session.StandardManager(StandardManager.java:321) в org.apache.catalina.session.StandardManager.start (StandardManager.java:637) в org.apache.catalina.core.ContainerBase.setManager (ContainerBase.java:432) в org.apache.catalina.core.StandardContext.start (StandardContext.java:4160) в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:760) в org.apache.catalina.core.ContainerBase.addChildBerber: Container740) в org.apache.catalina.core.StandardHost.addChild (StandardHost.java:544) в org.apache.catalina.startup.HostConfig.deployDescriptor (HostConfig.java:626) в org.apache.catalina.stfigup.Host.deployDescriptors (HostConfig.java:553) в org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:488) в org.apache.catalina.startup.HostConfig.start (HostConfig.java:1138) в org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:311) в org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:120) в org.apache.cat.core.ContainerBase.start (ContainerBase.java:1022) в org.apache.catalina.core.StandardHost.start (StandardHost.java:736) в org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1014) в org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) в org.apache.catalina.core.StandardService.start (StandardService.java:448) в org.apache.catalina.core.StandardServer.начать (StandardServer.java:700) с org.apache.catalina.startup.Catalina.start (Catalina.java:552) с sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) с sun.reflect.NativeMethodAccessorImpor.Java: 39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) в org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:295) в org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:433) Причина: java.io.NotSerializableException: com.everbank.uft.entities.ldc.VoidReason в java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1156) в java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:326)в java.util.(DelegatingMethodAccessorImpl.java:25) по адресу java.lang.reflect.Method.invoke (Method.java:597) по адресу java.io.ObjectStreamClass.invokeWriteObject (ObjectStreamClass.java:945) по адресу java.io.ObjectOuterialData.java: 1461) в java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1392) в java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1150) в java.io.ObjectOutputStream.jorg.apache.catalina.session.StandardSession.writeObject (StandardSession.java:1478) в org.apache.catalina.session.StandardSession.writeObjectData (StandardSession.java:948) в org.apache.catalina.session.StandardUanager (StandardManager.java:517) в org.apache.catalina.session.StandardManager.unload (StandardManager.java:463) в org.apache.catalina.session.StandardManager.stop (StandardManager.java:667) в org.apache.catalina.core.StandardContext.stop (StandardContext.java:4363)в org.apache.catalina.core.ContainerBase.removeChild (ContainerBase.java:893) в org.apache.catalina.startup.HostConfig.undeployApps (HostConfig.java:1180) в org.apache.catalina.startup.HostConfig(HostConfig.java:1151) в org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:313) в org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:120) в org.ap.catalina.core.ContainerBase.stop (ContainerBase.java:1055) в org.apache.catalina.core.ContainerBase.stop (ContainerBase.java:1067) в org.apache.catalina.core.StandardEngine.stop (StandardEngine.java:448) в org.apache.catalina.core.StandardService.stop (StandardService.java:510) в org.apache.catalina.core.StandardServer.stop (StandardServer.java:734) в org.apache.catalina.startup.Catalina.stop (Catalina.java:602) в org.apache.catalina.startup.Catalina.start (Catalina.java:577) ... еще 6 ОШИБКА 2011-03-01 16:42:49: UserTrackingFilter.doFilter () не удалось.сообщение: при выполнении сервлета возникла исключительная ситуация javax.servlet.ServletException: при выполнении сервлета возникла исключительная ситуация в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:292) в org.apache.catalina.core.Ailin.FilterFort.java: 188) в com.everbank.uft.filters.UserTrackingFilter.doFilter (UserTrackingFilter.java:65) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:215) в org.apache.catcore.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) в com.everbank.uft.filters.HibernateSessionRequestFilter.doFilter (HibernateSessionRequestFilter.java:36) в org.apache.catalina.cil.Filter.Filter.Filter.Filterв org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:188) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:210) в org.apache.catinaStandardContextValve.invoke (StandardContextValve.java:174) по адресу org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) по адресу org.apache.catalina.valves.ErrorReportValve.invoke.jp (ошибка) в репорте.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:108) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151) в org.apache.coyote.httpcessorHorp11.java: 870)в org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:665) в org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) в org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:81) в org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:685) at java.lang.Thread.run (Thread.java:619)

Ответы [ 3 ]

5 голосов
/ 02 марта 2011

Это означает, что вы поместили в сеанс объект, который нельзя сериализировать, и включили сохранение сеанса при остановке сервера.

У вас есть несколько вариантов:

  • заставить рассматриваемый класс реализовать Serializable
  • удалить его из сеанса на sessionDestroyed(..) из HttpSessionListener
  • если он является членом другого класса, хранящегося в сеансе, сделать его transient
  • просто игнорируйте ошибку

Вы также должны очистить «рабочий» каталог tomcat, чтобы предыдущий сериализованный сеанс не был восстановлен.

2 голосов
/ 02 марта 2011

com.everbank.uft.entities.ldc.VoidReason не является Serializable, он не реализует Serializable или не наследует что-то, что делает.

0 голосов
/ 02 марта 2011

Могут ли сериализованные сеансы Tomcat на вашем сервере QA повреждены или иным образом повреждены?

Попробуйте удалить: $ {catalina.home} / work / Catalina / localhost / "независимо от имени вашего приложения" /SESSION.ser

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...