작성
·
683
·
수정됨
0
안녕하십니까
혼자 실습하는 중에 궁금한 점이 생겨 질문드립니다.
강의에서 @ResponseBody는 객체를 받아서 HTTP 메시지 컨버터를 통해 JSON 응답을 하는 것으로 배웠습니다.
postman 에서 api test 을 한 스샷입니다 그리고 디스패쳐 url-mapping을 *.h로 했습니다
그리고 spring 소스와 설정내용이 아래와같습니다
추가적으로 디스패쳐 url-pattern을 /* 으로 변경해서 api test을 하면
url 확장자를 다르게 써서 하면 json 응답데이타를 받습니다 확장자 .h 뿐만아니라 .hh로 끝나는 url도 위와같이 406에러가납니다 왜 그런지 도무지 감이 안옵니다
답변 부탁드립니다
답변 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형 데이타들이 반환됩니다
이건 왜 에러가 안나는지 궁금합니다
긴글 읽어주셔서 감사합니다