인프런 커뮤니티 질문&답변

노꼼수님의 프로필 이미지
노꼼수

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

JSON응답에서 406메세지 에러때문에 잠오지않습니다

작성

·

683

·

수정됨

0

안녕하십니까 

혼자 실습하는 중에  궁금한 점이 생겨 질문드립니다.

강의에서 @ResponseBody는 객체를 받아서 HTTP 메시지 컨버터를 통해 JSON 응답을 하는 것으로 배웠습니다.

postman 에서 api test 을 한 스샷입니다 그리고 디스패쳐 url-mapping을 *.h로 했습니다

스크린샷 2023-05-14 오후 7.47.50.png스크린샷 2023-05-14 오후 7.48.37.png스크린샷 2023-05-14 오후 7.54.24.png그리고 spring 소스와 설정내용이 아래와같습니다

스크린샷 2023-05-14 오후 7.49.52.png스크린샷 2023-05-14 오후 7.50.16.png스크린샷 2023-05-14 오후 7.51.01.png

추가적으로 디스패쳐 url-pattern을 /* 으로 변경해서 api test을 하면

스크린샷 2023-05-14 오후 7.47.50.png

url 확장자를 다르게 써서 하면 json 응답데이타를 받습니다 확장자 .h 뿐만아니라 .hh로 끝나는 url도 위와같이 406에러가납니다 왜 그런지 도무지 감이 안옵니다

스크린샷 2023-05-14 오후 8.21.00.png답변 부탁드립니다

답변 1

0

안녕하세요. kjh9728님, 공식 서포터즈 David입니다.
아래 가이드를 따라 프로젝트 공유 부탁드립니다.

전체 프로젝트를 압축한 뒤
구글 드라이브로 공유해서 링크를 남겨주세요.

1. 구글 드라이브 업로드 방법

구글 드라이브 업로드 방법
링크

2. 주의사항
구글 드라이브 공유시
권한을 반드시 확인해주세요

3. 아래 내용을 작성 부탁드립니다.
a. 프로젝트 실행 방법을 알려주세요.
b. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

노꼼수님의 프로필 이미지
노꼼수
질문자

안녕하세요 답장이 좀 늦어서 죄송합니다

 

https://drive.google.com/uc?id=11qxnb56M0ytgANV49J0IR5cT-epOvJ53&export=download

https://drive.google.com/uc?id=1K8dJ0tX0O4id3qRW75yFuHUgBa7vNjL9&export=download

링크를 첨부했습니다

프로젝트 사항은 1.jdk은 1.8 빌드 프레임워크는 Dynamic project 와 라이브러리 로 spring 3.2.9버전과mybatis 3.2. 4,jackson data-bind 2.1.1.jar,jackson core 2.1.1.jar

jackson-annotation 2.1.1.jar, 로 구성되었으며 첨부된 war파일을

이클립스에서 import project 하여 진행하실때 Server로 tomcat 8.5로 선택하여

db은 mysql로 했으며 프로젝트 src/emp.sql파일 를 열어서 database 명을 test로 하고 테이블생성 및 insert 문을 커밋해서

이클립스에서 import project 하여 진행하실때 Server로 tomcat 8.5로 선택하여

tomcat 8.5대 의 context.xml에 첨부한 context.xml에 붙여넣기 하시면 db 연동됩니다

서버 실행하여 아래와 같이 링크를 테스트 하시면 됩니다

postman에서 Content-Type을 application/json ,Accept : application/json 세팅하여 테스트해도

http://localhost:8080/emp/springEmpSelectList.h

// 406 에러가 납니다

http://localhost:8080/emp/springEmpSelectList.hh

// 406 에러가 납니다

http://localhost:8080/emp/springEmpSelectList.a

//json 형 타입데이타들이 나옵니다

http://localhost:8080/emp/springEmpSelectList.do

//json 형 타입 데이타가 나옵니다

/WEB-INF 내 Web.xml 에 보시면 서블릿매핑을 /*로 했습니다

즉 왜 특정한 확장자 문자를 붙이면 (.h 이나 .hh)로 하면 406 에러가 나는지 모르겠습니다

추가적으로 Web.xml 에서

mime 매핑 추가하면
<mime-mapping>
    <extension>h</extension>
    <mime-type>application/json</mime-type>
</mime-mapping>

406 에러가 나지않고 json형 데이타들이 반환됩니다

이건 왜 에러가 안나는지 궁금합니다

긴글 읽어주셔서 감사합니다

 

 

 

 

노꼼수님의 프로필 이미지
노꼼수
질문자

제질문에 대한 답변 확인 요청드립니다

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. kjh9728님

답변이 늦어서 죄송합니다.

주신 파일을 살펴보았는데요. 저희도 정확한 원인을 잘 모르겠습니다.

혹시 아시는 분 있으면 답변 부탁드려요.

감사합니다.

노꼼수님의 프로필 이미지
노꼼수

작성한 질문수

질문하기