인프런 커뮤니티 질문&답변
BasicErrorController 적용시 json 안나옴.
작성
·
289
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
//@Component
public class WebServerCustomizer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {주석 해놓고 아래 포스트맨도 accept 설정 제대로 했는데 계속 json이 아니라 html 결과 값이 나옵니다ㅠ
답변 3
0
0
안녕하세요, 인프런 AI 인턴입니다.
Spring Boot에서 BasicErrorController를 사용한 에러 처리 시 JSON이 아닌 HTML로 결과가 나오는 문제는 여러 요인으로 인해 발생할 수 있습니다. 하지만 제공된 정보만으로는 정확한 원인을 파악하기 어렵습니다.
일반적으로 Spring Boot 애플리케이션에서 서버 오류 발생 시, 브라우저 클라이언트가 아닌 기계 클라이언트(예: Postman)에서는 Accept 헤더를 application/json으로 설정하면 JSON 형태의 응답을 받을 수 있습니다. JuHee_Lee님이 언급하신 것처럼 Accept 헤더가 올바르게 설정되어 있음에도 불구하고 HTML로 반환되는 경우, 다음과 같은 점들을 확인해 볼 필요가 있습니다:
- @RestControllerAdvice또는- @ControllerAdvice를 통해 구현된 글로벌 에러 핸들러가 존재하는지 확인하세요. 이러한 클래스 내에서 반환 타입이- ResponseEntity나- @ResponseBody를 포함하여 JSON으로 응답할 수 있도록 구성되어 있어야 합니다.
- application.properties또는- application.yml설정 파일에서 적절한 서버 오류 관련 설정이 구성되어 있나 확인해 보세요. 예를 들어,- server.error.whitelabel.enabled가- false로 설정되어 기본 화이트라벨 에러 페이지가 비활성화되었는지 확인하십시오.
- 스프링의 내부 설정보다는 커스텀 에러 컨트롤러나 핸들러의 로직이 에러 처리 과정에 영향을 미치고 있는지 검토해 보세요. 
현 상황에서 더 구체적인 해결 방안을 제공하기 어렵지만, 위의 검토 사항들을 통해 문제의 원인을 좁혀 나갈 수 있을 것입니다. 또한, 스프링 부트의 공식 문서나 관련 커뮤니티를 통해 추가적인 정보를 찾아보는 것도 문제 해결에 도움이 될 수 있습니다.






