Сеансы загрузки исключений из постоянного хранилища
Я внес много изменений в приложение 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'
Ответы
Ответ 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.
- Сделайте чистую сборку и перезапустите сервер