EgovSampleExcepHndlr 재질문
- 작성자 :
- 서*기
- 작성일 :
- 2013-09-11 10:40:00
- 조회수 :
- 1,046
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
프로젝트를 생성할때 샘플로 제공하는 소스에서 EgovSampleExcepHndlr에 에러를 보낼려고
EgovSampleController에 selectSampleList에서
상단에
SampleVO sampleVO = null;
searchVO.setSearchUseYn(sampleVO.getId());
이런식으로 java.lang.NullPointerException에러를 유도해 봤습니다.
그런데 이렇게 하니까 EgovSampleExcepHndlr로 에러가 오지 않는데 이 쪽으로 에러를 보낼려고 하면 세팅을 어떻게 변경해야 하나요?
답변을
템플릿 프로젝트가 exception이 *impl*에서 발생한 에러를 잡도록 설정되어 있습니다
따라서 SampleVO sampleVO = null;
searchVO.setSearchUseYn(sampleVO.getId());
위의 로직을 EgovSampleServiceImpl에 넣으시고 실행해 보시기 바랍니다
라고 주셨는데 제가 정확히 원하는 건 작업을 하다보면 ServiceImpl에서만 에러가 나는게 아니고 Controller에서도 에러가 날수 있는데 샘플 소스 구조가 에러가 나면 EgovSampleExcepHndlr 에서 에러를 출력하주는것 같은데 이 부분을 Controller에서 나는 에러도 출력해줄수 있게 변경하는 부분이 필요합니다.
그럼 수고하세요
EgovSampleController에 selectSampleList에서
상단에
SampleVO sampleVO = null;
searchVO.setSearchUseYn(sampleVO.getId());
이런식으로 java.lang.NullPointerException에러를 유도해 봤습니다.
그런데 이렇게 하니까 EgovSampleExcepHndlr로 에러가 오지 않는데 이 쪽으로 에러를 보낼려고 하면 세팅을 어떻게 변경해야 하나요?
답변을
템플릿 프로젝트가 exception이 *impl*에서 발생한 에러를 잡도록 설정되어 있습니다
따라서 SampleVO sampleVO = null;
searchVO.setSearchUseYn(sampleVO.getId());
위의 로직을 EgovSampleServiceImpl에 넣으시고 실행해 보시기 바랍니다
라고 주셨는데 제가 정확히 원하는 건 작업을 하다보면 ServiceImpl에서만 에러가 나는게 아니고 Controller에서도 에러가 날수 있는데 샘플 소스 구조가 에러가 나면 EgovSampleExcepHndlr 에서 에러를 출력하주는것 같은데 이 부분을 Controller에서 나는 에러도 출력해줄수 있게 변경하는 부분이 필요합니다.
그럼 수고하세요
A
안녕하세요 프레임워크센터입니다.
Exception이나 Transaction처리를 *impl*단에 두는 이유는
전통적인 Layered Architecture에 따라 비즈니스 레이어 컴포넌트의 경계가 되는 부분이 impl단이기 때문입니다.
해당 부분을 controller에다가 두셔도 상관없으시며 aop처리하는 부분을
execution(* egovframework.let..impl.*Impl.*(..))
-->
execution(* egovframework.let.web.*Controller.*(..))
로 변경하시면 됩니다.
수고하세요.
Exception이나 Transaction처리를 *impl*단에 두는 이유는
전통적인 Layered Architecture에 따라 비즈니스 레이어 컴포넌트의 경계가 되는 부분이 impl단이기 때문입니다.
해당 부분을 controller에다가 두셔도 상관없으시며 aop처리하는 부분을
execution(* egovframework.let..impl.*Impl.*(..))
-->
execution(* egovframework.let.web.*Controller.*(..))
로 변경하시면 됩니다.
수고하세요.