> Java > java지도 시간 > 본문

Spring MVC 컨트롤러에 JSON 요청을 보낼 때 406(허용되지 않음) 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-30 10:28:26
원래의
126명이 탐색했습니다.

Why am I getting a 406 (Not Acceptable) Error When Sending a JSON Request to My Spring MVC Controller?

406을 반환하는 Spring JSON 요청(허용되지 않음)

JSON 요청을 Spring MVC 컨트롤러로 보내려고 할 때 일부 사용자는 다음과 같은 문제가 발생합니다. "406 허용되지 않음" 오류. 이 문제는 요청된 콘텐츠 유형("application/json")과 컨트롤러의 응답 기능이 일치하지 않기 때문에 발생합니다.

Spring MVC에서 컨트롤러 메서드에는 "@ResponseBody"라는 주석이 붙어 있습니다. 반환 값은 JSON으로 HTTP 응답 본문에 기록되어야 합니다. 그러나 적절한 HTTPMessageConverter가 애플리케이션 컨텍스트에 등록되지 않으면 Spring은 반환 값을 요청된 형식으로 변환할 수 없습니다.

이 오류의 일반적인 원인은 애플리케이션에 Jackson 라이브러리가 없기 때문입니다. 클래스 경로. Jackson 라이브러리는 Java 객체를 JSON으로 또는 그 반대로 변환하는 HTTPMessageConverter를 제공합니다.

문제를 해결하려면 다음 단계를 따르십시오.

  1. 다음 Jackson 라이브러리가 애플리케이션 클래스 경로에 포함되어 있습니다:

    • jackson-core-asl.jar
    • jackson-mapper-asl.jar
  2. Spring 3.0 이상을 사용하는 경우 spring-servlet.xml 구성 파일에 다음 줄을 추가하여 주석 기반 MVC 구성을 활성화하세요.

    <code class="xml"><mvc:annotation-driven /></code>
    로그인 후 복사
  3. 불필요한 "headers="를 제거하세요. 컨트롤러 메서드 주석의 Accept=/"" 지시어입니다. 이 지시문은 Spring이 모든 헤더를 허용하도록 강제하고 호환성 문제를 일으킬 수 있습니다.

이러한 단계를 구현하면 HTTPMessageConverter가 등록되고 Spring은 예상대로 컨트롤러의 반환 값을 JSON으로 변환할 수 있습니다. .

위 내용은 Spring MVC 컨트롤러에 JSON 요청을 보낼 때 406(허용되지 않음) 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!