반응형

cannot deserialize from Object value
(no delegate- or property-based Creator) 

 

Domain Class

public class Product {
    private Long id;

    private String name;

    private String maker;

    private Integer price;

    private String imageUrl;

    public Product(String name, String maker, int price) {
        this.name = name;
        this.maker = maker;
        this.price = price;
    }
}

 

ProductControllerTest

@WebMvcTest(ProductController.class)
class ProductControllerTest {
	@Test
    void create() throws Exception {
        mockMvc.perform(post("/products")
                .contentType(MediaType.APPLICATION_JSON)
                .content("{\"name\":\"냥냥\",\"maker\":\"냥이월드\",\"price\":5000}"))
                .andExpect(status().isCreated());
    }
}

 

에러 원인

jackson library가 빈 생성자가 없는 모델을 생성하는 방법을 모르기 때문

 

해결방안

Domain class (Member Class) 에 빈 생성자 추가

public class Product {
    private Long id;

    private String name;

    private String maker;

    private Integer price;

    private String imageUrl;

    // 빈 생성자 추가
    public Product() {

    }

    public Product(String name, String maker, int price) {
        this.name = name;
        this.maker = maker;
        this.price = price;
    }
}
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기