2012-09-25 6 views
0

JSF 2.0을 사용하여 웹 응용 프로그램을 만들었습니다. 로그인 한 직원의 ID를 유지하는 Session Bean을 하나 만들었습니다.톰캣을 다시 시작하면 NullPointerException이 발생합니다.

문제는 코딩에서 변경을 수행하고 온라인으로 Tomcat을 다시 시작할 때 Null Pointer 예외가 발생합니다 (로그 아웃하지 않은 경우입니다.) 시스템에서 로그 아웃하면 null 포인터 예외가 발생하지 않습니다. 이를 극복하기 위해 브라우저의 역사를 정리해야하며 문제가 해결됩니다.

다음은 온라인으로 프로젝트를 수행하기 위해 수행 한 단계입니다.

  1. 복사 war 파일 내 VPS에 대한 코드의 변화는
  2. ROOT.war-
  3. 종료 바람둥이
  4. 제거 ROOT 폴더
  5. 변화와의 전쟁 파일 이름
  6. 다시
  7. 을 바람둥이를 시작 함

제발 어떻게할까요?

+0

그리고 귀하의 질문은 무엇입니까? 무엇을해야합니까? 로그인 한 사용자를 세션에 저장하지 말고 쿠키에 자격 증명 (세션 ID)을 저장하고 데이터베이스에서 매번 사용자를 얻으십시오. – user1516873

+0

여기에서 질문하고 여기에도 답하십시오. 그러면 뭐가 필요할까요? – Ami

+0

@ILLA : 여기에 대답하지 않았습니다 .... –

답변

0

무엇을 하시겠습니까?

무슨 일이 일어나고 있는지는 브라우저를 닫지 않았거나 사용자가 계속 세션에 있거나 쿠키, 세션 ID 등이 존재하는 경우입니다.

이제 IE를 닫지 않고 서버를 다시 시작할 때/내역을 삭제할 때 브라우저는 (다시 시작한 것처럼) 거기에 없을 서버의 세션 ID를 찾게되어 nullPointerException을 throw합니다.

아무 것도 할 필요가 없습니다. 예상되는 동작입니다. 서버를 다시 시작한 후 브라우저를 닫거나 다시 시작하기 전에 로그 아웃하십시오 (탭에서 세션이 유지되면 새 탭이 작동하지 않음). 프로그램이 정상적으로 작동하고 null 포인터가 생기지 않습니다.

희망이 있습니다.

+0

답변 해 주셔서 감사합니다. 그러나 로그 아웃하고 서버를 다시 시작하는 것을 잊어 버린 경우 어떻게해야합니까? 널 포인터 예외를 어떻게 극복 할 수 있습니까? 나는 나가서 모든 직원에게 로그 아웃하도록 말할 수 없으므로 해결책을 얻어야합니다 ... –

+0

로그 아웃하고 서버를 다시 시작하는 것을 잊어 버리면. 이 경우 기존 브라우저 창을 닫고 새 브라우저 창을 여는 경우 예상대로 작동합니다. 브라우저 내부의 세션은 로그 아웃 될 때까지 유지됩니다. 또는 브라우저를 닫습니다. 또한 정말로 그런 식으로하고 싶다면. 소멸자 내에서 쿠키, 세션 ID 등을 지우는 코드를 작성할 수 있습니다. 또한 직원이 서버에 액세스하여 다시 시작하기를 기대합니까? –

관련 문제