수요일, 4월 01, 2009

RAP

widget이 종료될때 dispose()를 호출해 줍니다.
뷰파 트가 닫힐 경우라던가 이럴때 dispose를 호출해 주어서 사용하던 자원을 반납할수 있게 됩니다. 이미지도 반납해 주고, 사용하던 thread도 종료해주고요.

종료버튼을 눌러주면 dispose()메소드를 잘 호출해 주었습니다.

오늘 무심코 browser의 x버튼을 눌러서 종료했더니 dispose()를 호출해 주지 못했습니다.

버그 질라를 통해, 다음과 같이 해결 했습니다.
이런 경우는 session의 timeout을 이용해서 처리 해야 합니다.
Session을 설정하면 Session이 expire될때 RAP가 WorkbenchWindowAdvisor#postWindowClose() 를 콜백 줍니다.
그래서 꼭 없어져야 하는 자원이 있다면 postWindowClose에 코드를 집어 넣어야 합니다.

Login시에 session을 설정하고 sessiontimeout시간을 지정합니다.
//
// http session time을 정한다.
//
ISessionStore ss = RWT.getSessionStore();
HttpSession hs = ss.getHttpSession();
hs.setMaxInactiveInterval( 24 * 60 * 60 ); // 24시간동안 세션설정한다.

// 종료될때 호출해 주어야 하는 자원을 아래 처럼 기록해줍니다.
@Override
public void postWindowClose() {
................
}

댓글 6개:

  1. RAP Session 관련된 내용을 찾다가 좋은 내용 발견하고 글 남깁니다..^^;
    저도 현재 rap 기반의 오픈소스 원격 파일 탐색기를 만들어 보고 있습니다. 님과 같은 계기로 말이죠...^^; 암튼 좋은 정보 감사합니다..
    그럼 좋은 하루 되시길...

    답글삭제
  2. 작성자가 댓글을 삭제했습니다.

    답글삭제
  3. 네, 원격 파일 탐색기라면 서버쪽 말씀하시는가요? 잘 이해가 안가네요. dsdp 같은애를 써보면 딱좋겟네요. 하시다가, 어려운 문제는 서로 공유해요. RAP라는 불모지에 사람이 너무 없어서 외롭네요.

    답글삭제
  4. 그냥..허접한거 한번 만들어 보고 있습니다. 윈도우즈의 파일 탐색기를 웹브라우져로 이용가능하도록 rap 기반으로 만들어서 오픈소스화 해볼려구요...회사 문서를 공유하는데 생각보다 애로가 있어서 계속 생각하다가 만들어 보고 있습니다...여러 기술을 생각했었는데..(Silverlight, WPF, Flash)...아무래도 자바 기반이고..서버 사이드 기술에...저역시 RCP 개발을 10년정도 했거든요...--;
    그럼 좋은 하루 되십시요..^^;

    답글삭제
  5. 아차...10년은 너무 오바이구요..^^; 한 5년 했었다는...^^; 죄송합니다...

    답글삭제
  6. 5년이면 거의 거품 수준이신데요.
    저보다 더 오래 되셨네요. 끙~~~
    어설픈 조언을 드렸네요. -_-;;

    대단하세요.

    답글삭제