[web] Spring – Could not resolve view with name

org.springframework.web.accept.ContentNegotiationManagerFactoryBean 을 사용하여 mimeType을 자동으로 지정할 때 주의할 점이 있다.

바로 API extension을 어떻게 할 것인지인데

host/path/api.in

servlet.xml에 mimeType extension에 대한 pattern을 지정하지 않으면 Tomcat에 있는 web.xml의 mimeType 을 applicationContext.getMimeType 메서드를 이용해서 가져오게 된다.

tomcat 7에서 in 에 대한 contentType이 text/plain을 반환하여 JSP view 를 반환하지 못하여 장애로 이어질 수 있다. JSP는 mimeType이 text/html 이다.

웬만하면 well known extension으로 활용해야지 언어코드와 같은 것으로 확장자를 설계하면 피를 볼 수 있다. 잘 알지 못하면 사용하지 말자.

ServletException이 발생한 케이스이다.

call API : host/path/api.in

API extension : in

catalina/web.xml -> mimeType “in” : text/plain

JSP로 반환 해야 하는데 text/html이 아니라 text/plain으로 떨어져 dispatcherServlet에서 올바른 view를 반환하지 못한다.

에러 메시지 :

Could not resolve view with name ‘path/api’ in servlet with name ‘myServlet’

자 다시한번 따라 읽어봅니다.

“잘 모르면 사용하지 말자.”

이 원인을 알게 된 것도 잘 모르고 사용 하다가 발생한 케이스다.

@ 해결 방법을 첨부 하자면

extension을 사용하는 API는 deprecated처리하고

기존에 유입되던 traffic은 신규 API주소로 redirect처리 하였다.

[생각의 정리] 성공하는 사람들의 7가지 습관

습관1: 자신의 삶을 주도하라
인생의 코스를 스스로 선택하라. 성공하는 사람들은 자신이 할 수 없는 일에 집착하거나 외부의 힘에 반응하는 대신, 할 수 있는 일에 집중하며 자신의 선택과 결과에 책임을 진다.

습관2: 끝을 생각하며 시작하라
자신이 어디로 향하고 있는지 알기 위해서는 전반적인 인생목표를 포함해 최종목표를 정해야 한다.

습관3: 소중한 것을 먼저하라
긴급함이 아니라 중요성을 기반으로 업무 우선순위를 정하고 습관 2에서 정한 목표성취를 돕는 계획을 세워라. 우선순위에 따라 업무를 수행하라.

습관4: 윈 – 윈을 생각하라
쌍방에 도움이 되는 해결책을 추구하라.

습관5: 먼저 이해하고 다음에 이해시켜라
상호존중하는 환경을 조성하고 문제를 효과적으로 해결하기 위해서는 타인의 말을 경청하고 열린 자세를 가져야 한다. 이로써 상대도 같은 태도를 보이도록 유도할 수 있다.

습관6: 시너지를 내라
혼자서 달성할 수 없는 목표를 이루기 위해 팀을 활용하라. 팀원들의 최대성과를 이끌어내기 위해 유의미한 공헌과 최종목표를 장려하라.

습관7: 끊임없이 쇄신하라
장기적으로 성공하기 위해서는 기도나 명상, 운동과 봉사활동, 고무적인 독서를 통해 몸과 마음, 영혼을 건강하게 유지하고 쇄신해야 한다.

출처 : 성공하는 사람들의 7가지 습관 (written by 스티븐 코비)
메일에 남아있는 좋은 글을 세상 밖으로 꺼내왔어요.

PS. Title : 마지막으로? 하고 싶은 말… 예전에 여자친구와 헤어지기 전에 작성한 글이라니.. 짠하군요.