본문 바로가기

백엔드/스프링

스프링 No serializer found for class 에러 해결

문제는 아래와 같은 코드에서 발생했다.

@RestController
public class ItemController {

    @GetMapping("/items")
    public List<Item> items(){
        List<Item> itemList = new ArrayList<>();
        itemList.add(new Item("ldsa", 25));
        return itemList;
    }

    static class Item {
        private String name;
        private int age;
        public Item(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
}

발생한 이유는 간단하다. 리턴 타입이 객체이므로 메시지 컨버터에서 Json으로 변환해줘야 하는데 private 필드들에 setter가 설정되어있지 않아서 json으로 변환할 수가 없어서 나는 에러이다.

 

한줄 결론 : setter를 만들어주면 해결

'백엔드 > 스프링' 카테고리의 다른 글

타임리프 정리2  (0) 2021.09.13
타임리프 사용법 정리  (0) 2021.09.13
PRG (Post Redirect Get)  (0) 2021.08.19
스프링 MVC - 응답데이터와 메시지 컨버터  (0) 2021.08.19
스프링 MVC - 요청 데이터  (0) 2021.08.19