codememo

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

tipmemo 2023. 7. 27. 22:01
반응형

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

는 봄 반려동물 클리닉 신청에 많은 변화를 주었습니다.현재 eclipse run을 사용하여 Tomcat 서버의 새 인스턴스에서 응용 프로그램을 시작할 때 다음 오류 메시지가 표시됩니다.서버에서 실행:

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'  

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

이 오류를 제거하는 한 가지 방법은 재시작 시 세션 지속성을 사용하지 않도록 설정하는 것입니다.파일을 편집하여 이 작업을 수행할 수 있습니다.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 "work" 폴더를 삭제합니다.Tomcat 서버를 다시 시작합니다. 이제 예외나 오류 없이 실행되기를 바랍니다!

이 작업은 Tomcat 내에서 서버를 선택하고 "Clean Tomcat Work Directory"를 선택하여 수행할 수 있습니다.

enter image description here

Spring Boot로 작업하는 경우 application.properties에 추가하기만 하면 됩니다.

server.servlet.session.persistent=false

Tomcat Work Directory를 정리하기만 하면 됩니다.내게 잘 먹혀든 것입니다.

영구 클래스가 제대로 직렬화되지 않았기 때문에 Apache 중지만 제대로 수행할 수 있습니다.프로젝트를 제거하고 프로젝트 및 서버도 정리합니다.

'재배치만 하면 됩니다'

- 수강생은 serialVersion이 있는 Serialable 인터페이스를 구현해야 합니다.UID - 정리 빌드를 수행하고 서버를 다시 시작합니다.

저도 이클립스의 프로젝트에서 비슷한 오류가 있었습니다.저는 다음 단계를 통해 문제를 해결했습니다.

  • 프로젝트를 정리합니다.
  • 이클립스의 서버 보기에서 Tomcat 서버 삭제
  • 마법사를 사용하여 이클립스의 서버 보기에서 새 Tomcat 서버 정의
  • 새로 정의된 Tomcat 서버에 프로젝트 추가

그 후, 이 새로운 Tomcat 서버를 실행하는 것은 모두 완벽하게 작동했습니다.

봄에 부츠를 신으면 당신은@ResponseBody당신의 에대주에 을 달기@GetMapping파일

언급URL : https://stackoverflow.com/questions/20622746/exception-loading-sessions-from-persistent-storage

반응형