본문 바로가기

Web/Spring Framework

(3)
스프링부트. @ControllerAdvice를 이용한 HTML과 JSON 요청에 대한 예외 처리 이번에는 스프링부트에서 예외를 처리하는 예제에 대해 설명하려고합니다.모든 코드는 Github에 있기 때문에 같이 보길 추천합니다. 발단 실무에서 스프링을 이용한 프로젝트를 진행할 때, 예외를 어떻게 처리할 것인지는 매우 중요하다.메소드 혹은 컨트롤러마다 예외를 처리할 수도 있지만, 여간 귀찮은 일이 아니다.예외가 발생하면 서버에서는 로그를 기록하고 사용자에게는 특정 메시지만 표시하게 전역으로 처리하면 좋다고 생각했다. 본문 스프링부트에서 예외처리하는 방법은 3가지다.전역 처리 @ControllerAdvice컨트롤러단에서의 처리 @ExceptionHandler메소드단위에서의 처리 try/catch예외를 전역으로 처리하기 위해서는 1(@ControllerAdvice)와 2(@ExceptionHandler) ..
mybatis에서 mssql 프로시저 호출 시 raise error을 catch하지 못하는 경우 이제 첫번째 프로젝트가 막바지에 다다랐다.웹개발에서 내가 맡은 부분을 마치고 jquery-mobile을 이용해서 웹앱을 개발중이다. 그러던 중 이상한 현상을 겪었다.우선 지금 프로젝트는 새로운 시스템을 구축 하는것이 아닌기존에 ASP로 개발된 시스템을 자바-스프링으로 재구축하는 프로젝트이다. DB는 MSSQL을 사용하고 있었기 떄문에 DB를 새로 디자인 할 필요도 없으므로 신입인 나에게 적합한 프로젝트인 것 같다.또, 모든 쿼리를 프로시저로 사용해서 마이바티스에선 그저 프로시저의 매개변수와 결과를 매핑시켜주는 부분에만 집중하면 되었다. 그런데 문제가 생겼다. MSSQL은 DBMS자체에서 에러를 throw할 수 있는 RAISERROR라는 시스템 저장 프로시저가 있다. 이 프로시저를 마이바티스에서 호출하니까..
Mybatis 추가 시 mybatis egovframework.com.cmm.EgovMessageSource Caused by: java.lang.ClassNotFoundException: egovframework.com.cmm.EgovMessageSource http://okky.kr/article/281867 참조하였음. 자신의 메이븐 디렉토리 (나같은 경우 ~/fnel159/.m2) 에서 egovframework\rte\egovframework.rte.fdl.cmmn을 삭제한다. 이후 프로젝트 우클릭 -> [Run as] -> [maven clean] 프로젝트 우클릭 -> [Run as] -> [maven build] 한 뒤 실행하니 오류가 사라졌다. 서버는 정상구동되고 context 파일도 제대로 로드된다.context-mapper.xml 파일에 와 같이 @Mapper와 @Resource를 사용하려고 위..