Maven 프로젝트에 Jackson 의존성 추가

J_m2n·2023년 8월 10일
0
post-custom-banner

406에러 해결하기

AJAX를 통해 페이지 이동 없이 컨트롤러에 데이터를 전달해 SQL 쿼리문을 돌려 결과값을 가져오려고 했다.


문제: 자꾸 "406 받아들일 수 없음" 에러 발생

컨트롤러로 보내는 데이터를 JSON 형태로 보내서 받을 때도 JSON 형태로 받으려고 했다.
406에러는 response에서 응답이 올 때 request가 기대하는 데이터 형태와 다를 때 발생하는 에러라고 한다.


$.ajax({
				url : "chkReservation1.do",
				type : "get",
				data : {
					
				},
				async : true,
				dataType: "json",
				success : function(data){
                },error: function(xhr, status, error) {
			        console.log("AJAX Error:", xhr.responseText);
			        console.log("Status:", status);
			        console.log("Error:", error);
			    }
       });

ajax의 코드이고


@RequestMapping(value = "/chkReservation1.do", method = RequestMethod.GET)

컨트롤러의 코드이다.



해결방법 :
1. 컨트롤러에 @ResponseBody 어노테이션 추가


결과는? 실패....😓

  1. 컨트롤러의 method = RequestMethod.GET 옆에 produces="application/json")을 추가

개발자 도구의 Network >> Response >> Headers >> Content-type이 application/json 으로 바뀐다고 한다. 과연..!!


결과는?? 실패....🥲🥲

  1. pom.xml에 jackson 의존성을 추가
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-asl</artifactId>
	<version>1.8.5</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-core-asl</artifactId>
	<version>1.8.5</version>
</dependency>

(저는 spring framework 3.1.1 버전을 쓰고 있어서 가장 호환이 잘된다는 1.8.5버전을 썼습니다!)


결과는??? 실패....🤦‍♂️🤦‍♂️🤦‍♂️

이것 말고도 몇 개 더 있었는데 정말 다 해봤는데도
개발자 도구의 Network>>Response>>Headers에 Content-type이 application/JSON로 바뀌지 않고 text/html로 그대로인 것이다..ㅠㅠ

정말 계속 새로고침도 해보고, 캐시도 지우면서 오만 짓을 다해봤는데도 안됐다..



그러다 팀원이 pom.xml의 내용을 변경한 채 커밋을 하셨고, pom.xml을 변경한 후에는 메이븐 업데이트를 해줘야한다는 말씀을 하셨다.



?! 나는 정말 전혀 몰랐다..
그 말을 듣고 바로 메이븐 업데이트를 해봤는데 ...
정말 너무나도 이쁘게 AJAX로 JSON 데이터가 넘어왔다...😂😂



진짜 이틀동안 이것 때문에 매일 12시간씩 갖다 바쳤는데..!!

이렇게 허무하게 에러가 해결될 줄이야..



찾아보니 결국 @ResponseBody를 넣는 것도 맞고 Jackson 의존성도 추가하는게 맞다고 한다. 하하..

결국은 메이븐 업데이트 하나 때문에 이 고생을 했다는..ㅠㅠㅠ



찐 해결방법
1. 컨트롤러에 @ResponseBody 추가하기
2. pom.xml에 Jackson 의존성 추가하기
3. Maven Update 하기




이클립스에서 프로젝트에 우클릭 >> Maven 선택 >> Update Project 선택


프로젝트 우클릭 >> Run As 선택 >> Maven Install 선택






개발자 도구의 Response Headers의 Content-Type을 보면 잘 바뀌어 있다..!!



앞으로는 pom.xml 변경하면 꼭 메이븐 업데이트도 하자..!!!

profile
코딩 초짜입니다
post-custom-banner

0개의 댓글