2014년 12월 12일 금요일

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation


스프링 mvc에서 객체를 json로 반환하기 위해 
ResponseBody를 사용해서 객체를 반환했다.

그런데 제목과 같은 오류가 났다. 인터넷 온갖을 다 뒤져봐도 대답은 거의 비슷하다.
간혹 스프링 3.0버전의 버그때문이라는 분도 있었지만, 나는 해당사항이 아니였다.

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"  />
    </mvc:message-converters>
</mvc:annotation-driven>

이것도 넣었다.

jackson 라이브러리도 다 넣었다.
근데 계속 에러가 난다.

미쳐버리겠다 ㅠㅠ

신기한건 어떤 url은 정상 작동하고 어떤 url은 정상작동을 안한다.
이클립스에서 디버깅을 해서 하나씩 찾아봤다.

너무 지쳐서 상세히 적지를 못하지만, 주절주절 적으면 오류은 이렇다.

스프링에서 ResponseBody로 반환할때 미디어 타입을 찾는데,
이때 스프링에서 주소의 확장자 까지 참고해서 찾게된다.

만약 확장자가 jpg나 cmx같이 반환할 미디어타입중 마땅한게 없으면
저런오류가 나는거다.

나같은 경우 주소 확장자를 cmx라고 했는데, 이놈이 이미지타입으로
지정되고 있던거다....

그래서 난 주소에 확장자를 모두 빼버렸다....
해보진 않았지만, 아마 ajax호출할때 데이터 반환타입을 application/json으로
하면 작동이 잘될지도 모르겠다....

댓글 없음:

댓글 쓰기