Подтвердить что ты не робот

Сеансы загрузки исключений из постоянного хранилища

Я внес много изменений в приложение spring для пикника. На данный момент я получаю следующее сообщение об ошибке при запуске приложения в новом экземпляре сервера tomcat, использующего запуск eclipse как... запуск на сервере:

SEVERE: Exception loading sessions from persistent storage  

Затем сервер и приложение могут успешно запускаться, но я хотел бы исправить все, что вызывает сообщение об ошибке. Может ли кто-нибудь показать мне, как пройти это сообщение об ошибке?

Трассировка стека не отображает ни одного файла из приложения, поэтому я не знаю, где искать код приложения, чтобы устранить проблему. Вы можете посмотреть буквенный код в github, чтобы увидеть структуру приложения, если это поможет вам увидеть, где я должен искать, чтобы найти проблему. Вот трассировка стека:

INFO  EhCacheManagerFactoryBean - Initializing EhCache CacheManager
INFO  ContextLoader - Root WebApplicationContext: initialization completed in 4376 ms
Dec 16, 2013 2:51:56 PM org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.EOFException  
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Dec 16, 2013 2:51:56 PM org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage  
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Dec 16, 2013 2:51:56 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'petclinic'  
4b9b3361

Ответ 1

Это связано с тем, что Tomcat не может загружать ранее сериализованные веб-сеансы, которые были сохранены при более раннем отключении. Это может быть связано с тем, что Tomcat не завершил работу, и поэтому объекты сеанса были повреждены во время сериализации.

Один из способов устранения этой ошибки - отключить постоянство сеанса при перезапуске. Вы можете сделать это, отредактировав файл CATALINA_HOME/conf/context.xml и установив атрибут pathname <Manager> в пустую строку. Это хорошо описано в файле Tomcat 7:

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<Manager pathname="" />

Вы также должны удалить старые файлы session.ser из папки CATALINA_HOME/work/Catalina/localhost/<appName>, пока Tomcat отключится.

Это может быть неприемлемо в вашем случае, если необходимо сохранение сеанса при перезагрузке. В этом случае потребуется дополнительная отладка проблемы.

Ответ 2

Удалить папку "work" tomcat. Перезагрузите сервер tomcat, надеюсь, теперь он будет работать без каких-либо исключений или ошибок!

Это можно сделать, выбрав сервер в Tomcat и выбрав "Clean Workcat Directory"

введите описание изображения здесь

Ответ 3

Просто почистите рабочий каталог Tomcat, который хорошо работает для меня.

Ответ 4

Просто просто потому, что класс Persist не был сериализован правильно, просто остановите Apache. Удалите проект и очистите проект и сервер.

и просто переделайте его. удачи.

Ответ 5

У меня была аналогичная ошибка с проектом в eclipse. Я решил это с помощью следующих шагов:

  • Сделать проект чистой
  • Удалить сервер Tomcat на вид сервера eclipse
  • Определите новый сервер Tomcat на представлении сервера eclipse с помощью мастера
  • Добавить проект на новый сервер Tomcat

После этого запуск этого нового сервера Tomcat работал отлично.

Ответ 6

- Класс должен реализовывать интерфейс Serializable с serialVersionUID. - Сделайте чистую сборку и перезапустите сервер