com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "receiveExcelSize" (class com.api.dto.ApiBoardRequestDto), not marked as ignorable (7 known properties: "receiveList", "sequenceno", "receiveExcel", "transactionid", "faxInfo", "agentCode", "reserveTime"])
....
{"transactionid":null,"sequenceno":null,"agentCode":null,"subject":null,"callbackNum":"011112222","fileName":"testfile","file":"UEsDBBQABgAIAAAAIQBi7p1oXgEAAJAEAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAA"[truncated 13049 chars]; line: 1, column: 13497] (through reference chain: com.api.dto.ApiBoardRequestDto["receiveExcelSize"])
위와 같은 오류를 해결하기 위해서 쓰는 글입니다. (오류코드 부분라인만 가져왔습니다.)
살펴보면
# Unrecognized field "receiveExcelSize" (class com.kt.ums.api.dto.ApiBoardRequestDto)
# (through reference chain: com.api.dto.ApiBoardRequestDto["receiveExcelSize"])
이 부분을 보면 ApiSendFmsRequestDto에 receiveExcelSize 필드가 없어서 생긴 오류입니다.
ApiSendFmsRequestDto.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class ApiBoardRequestDto{
...
}
이렇게 어노테이션을 추가해줍니다.
@JsonIgnoreProperties(ignoreUnknown = true) 어노테이션이란 ?
- 일반적으로 json 데이터와 dto클래스 간의 매핑을 수행할 때, json 데이터에는 dto클래스에 정의되지 않은 속성들이 포함될 수 있다. 이 경우 Jackson은 이러한 추가 속성들을 인식하지 못하고 UnrecognizedPropertyException을 발생시킬수 있다.
- Jakson Databind에서 사용되는 어노테이션중 하나.
- json에서 없는 property에 대한 설정시 에러 회피하게 해주는 어노테이션입니다.
참고문헌
https://junuuu.tistory.com/821
Json 파싱시 없는 필드 무시(@JsonIgnoreProperties)
개요 개발을 진행하다 보면 메시지를 받거나, 외부 API응답을 받아올 때 객체가 String형태로 변환되어 해당 형태를 다시 객체로 만들 필요가 있습니다. 이때 받아오는 필드들이 100개가 있고 나는
junuuu.tistory.com
'백엔드 back-end' 카테고리의 다른 글
[JPA] 엔티티 클래스 테이터 타입 int, Integer 차이점/ null 값 오류 해결방법 (0) | 2024.08.05 |
---|---|
[Spring] @Controller & @RestController 차이/ 함께 사용가능? / 사용하는 이유? (0) | 2024.07.23 |
웹훅[Webhook] 이란 ? (0) | 2024.07.05 |
로그 레벨 trace/debug/info/warn/error/fatal (0) | 2023.12.12 |
Lombok (0) | 2023.03.13 |