복붙노트

[SPRING] 영구 저장소에서 예외로드 세션

SPRING

영구 저장소에서 예외로드 세션

나는 봄 Petclinic 응용 프로그램에 많은 변화를 만들었습니다. 현재 Eclipse에서 실행중인 Tomcat 서버의 새 인스턴스에서 응용 프로그램을 시작할 때 다음 오류 메시지가 표시됩니다. 서버에서 실행 :

SEVERE: Exception loading sessions from persistent storage  

서버와 응용 프로그램은 이후 성공적으로 시작할 수 있지만 오류 메시지의 원인을 수정하려고합니다. 아무도 나 에게이 오류 메시지를 과거 방법을 보여줄 수 있습니까?

스택 추적 응용 프로그램에서 파일을 나열하지 않습니다, 그래서 어디서 문제를 해결하려면 응용 프로그램 코드를 봐야할지 모르겠다. github에서 petclinic 코드를 보면 응용 프로그램의 구조를 볼 수 있습니다. 문제의 원인을 찾는 데 도움이된다면 도움이 될 것입니다. 다음은 스택 추적입니다.

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. ==============================

    1.이것은 Tomcat이 이전에 종료되었을 때 저장되었던 이전에 직렬화 된 웹 세션을로드 할 수 없다는 것과 관련이 있습니다. 이것은 Tomcat이 정상적으로 종료되지 않았기 때문에 세션 객체가 직렬화되는 동안 손상되었을 수 있기 때문일 수 있습니다.

    이것은 Tomcat이 이전에 종료되었을 때 저장되었던 이전에 직렬화 된 웹 세션을로드 할 수 없다는 것과 관련이 있습니다. 이것은 Tomcat이 정상적으로 종료되지 않았기 때문에 세션 객체가 직렬화되는 동안 손상되었을 수 있기 때문일 수 있습니다.

    이 오류를 없애는 한 가지 방법은 재시작시 세션 지속성을 비활성화하는 것입니다. 이 작업은 CATALINA_HOME / conf / context.xml 파일을 편집하고 의 경로 이름 속성을 빈 문자열로 설정하여 수행 할 수 있습니다. 이것은 Tomcat 7 용 파일에 잘 설명되어 있습니다.

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    
    <Manager pathname="" />
    

    Tomcat이 종료되는 동안 CATALINA_HOME / work / Catalina / localhost / 폴더에서 이전 session.ser 파일도 삭제해야합니다.

    재시작시 세션 지속성이 필요할 경우 사용자의 경우에는 허용되지 않을 수 있습니다. 어떤 경우에는 문제의 추가 디버깅이 필요할 것입니다.

  2. ==============================

    2.tomcat "work"폴더를 삭제하십시오. Tomcat 서버를 다시 시작하십시오. 이제 예외 나 오류없이 실행됩니다.

    tomcat "work"폴더를 삭제하십시오. Tomcat 서버를 다시 시작하십시오. 이제 예외 나 오류없이 실행됩니다.

    Tomcat에서 서버를 선택하고 "Tomcat 작업 디렉토리 정리"를 선택하면됩니다.

  3. ==============================

    3.그냥 Tomcat 작업 디렉토리를 청소하십시오. 그것은 나에게 잘 작동합니다.

    그냥 Tomcat 작업 디렉토리를 청소하십시오. 그것은 나에게 잘 작동합니다.

  4. ==============================

    4.Persist 클래스가 올바르게 직렬화되지 않았기 때문에 단순히 Apache를 중지하기 만하면됩니다. 프로젝트를 제거하고 프로젝트와 서버를 정리합니다.

    Persist 클래스가 올바르게 직렬화되지 않았기 때문에 단순히 Apache를 중지하기 만하면됩니다. 프로젝트를 제거하고 프로젝트와 서버를 정리합니다.

    여기에 단지 재배포하라. 행운을 빕니다.

  5. ==============================

    5.나는 이클립스에서 프로젝트와 비슷한 오류가 있었다. 나는 다음 단계들로 그것을 해결했다.

    나는 이클립스에서 프로젝트와 비슷한 오류가 있었다. 나는 다음 단계들로 그것을 해결했다.

    그 후이 새로운 Tomcat 서버를 실행하면 완벽하게 작동합니다.

  6. ==============================

    6.- 클래스는 serialVersionUID로 Serializable 인터페이스를 구현해야한다. - 클린 빌드를 수행하고 서버를 다시 시작하십시오.

    - 클래스는 serialVersionUID로 Serializable 인터페이스를 구현해야한다. - 클린 빌드를 수행하고 서버를 다시 시작하십시오.

  7. from https://stackoverflow.com/questions/20622746/exception-loading-sessions-from-persistent-storage by cc-by-sa and MIT license