Error

[Springboot - 에러해결] ResponseEntity 한국어 데이터 깨짐

chea-young

1. 에러 메시지

Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]


2. 원인

 - PaymentController

1
2
3
4
5
6
7
8
9
10
11
12
 
 
   @PostMapping("/new")
    @ResponseBody
    public ResponseEntity<?> savePayment(@RequestBody PaymentRequest paymentRequest) {
        log.info("Payment controller: /api/payment/new ---------------------");
 
        // // 빌링키 발급에 실패한 경우
        if (billingKeyJson.getCode() != 0) {
            return new ResponseEntity<>(billingKeyJson.getMessage(), HttpStatus.BAD_REQUEST);
        }
    }
cs

- 결제API 오류 데이터를 테스트하는 과정에 log에는 한글이 잘 나오지만, Postman 데이터에는 한국어가 깨지는 것을 확인했다.


3. 해결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      @PostMapping("/new")
    @ResponseBody
    public ResponseEntity<?> savePayment(@RequestBody PaymentRequest paymentRequest) {
        log.info("Payment controller: /api/payment/new ---------------------");
        // Header 추가 설정
        HttpHeaders resHeaders = new HttpHeaders();
        resHeaders.add("Content-Type""application/json;charset=UTF-8");
 
 
        // // 빌링키 발급에 실패한 경우
        if (billingKeyJson.getCode() != 0) {
            return new ResponseEntity<>(billingKeyJson.getMessage(), resHeaders, HttpStatus.BAD_REQUEST);
        }
    }
cs

 

- 6-8줄까지의 헤더에 제대로 설정을 하니 한국어가 원활하게 받아지는 것을 확인했다.

 


참고 사이트

- https://fruitdev.tistory.com/146