4/14 개발일기
사건의 발단은 이 블로그였다..
이 블로그는 정말 친절하게, 내게 스프링의 A~Z까지 실습 예제를 꼼꼼하게 알려주었다.
이 블로그만 따라하면 스프링의 그 무엇도 어려울 게 없어 보였으나...
문제의 인터셉터 챕터에서 완전 헤맸다..장장 일곱시간 삽질한 끝에 겨우 인터셉터 설정 성공.
프로젝트를 삭제했다가 다시 클린한 상태에서 재코딩하기를 무려 5번.
가장 큰 발단은 servlet-context.xml 을 복사하여 action-servlet.xml으로 재활용한데에 있었다.
왠지 모르겠지만, 프로젝트 생성 시 자동 생성되는 servlet-context.xml 은 일반 xml로 만들어지는 지.. <mvc:interceptors> 같은 문법이 하나도 먹히지가 않았다. 무조건 다 오류!!
처음에는 이 오류가 ㅡ 스프링 버전이 달라서 그런 줄 알고 맞는 문법을 찾아 다시 넣었으나 영 작동하지 않아서 fail. 아예 xml을 지웠다가 다시 만들면서 포맷을 spring bean configuration file로 선택하니 그동안 안 먹었던 모든 문법이 자연스럽게 작동하기 시작했다(ㅠㅠ)
그러나 그런 뒤에도 인터셉터는 타지 않았는데, 뭘까 고민하다가 interceptors 설정파일 문법들을 뒤지고 뒤진 끝에- 아래 문법이 성공했다.
<mvc:interceptors>
<bean class="board.common.logger.LoggerInterceptor" />
</mvc:interceptors>
작동이 안되던 AS-IS 문법은 아래 꺼.
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean id="loggerInterceptor" class="board.common.logger.LoggerInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
그리고 나는 바보같이 프로젝트 명이 늘 헷갈린다. com.company.board 가 아니라, board..
log4j.xml 에서 Application Loggers 설정 부분에 프로젝트 명을 작성해야 하는데
<logger name="com.company.board"> 라고 써놨었다. 그러자 아무런 오류 메시지도 없이 작동하지 않았다.. 그야말로 최악. 하도 로깅이 안찍혀서 <logger name="board"> 로 변경해보니 정상 작동.
오늘은 진짜 삽질 of the 삽질의 날.. 기념해야겠다...