Jackson으로 객체를 직렬화 할 때, 아래와 같이 에러가 발생할 때가 있습니다. 직렬화를 할 때, 객체의 getter를 사용하여 변환을 하는데 이 때 에러가 발생하면 아래와 같은 예외가 발생합니다. Exception in thread "main" com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.example.springapp.animal.Cat and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) 코드를 보면 ..
Spring에서 HTTP 요청을 하기 위해 RestTemplate를 많이 사용합니다. ( Spring 5.0부터 RestTemplate대신 WebClient을 사용을 추천하므로 legacy 프로젝트를 하시는 것이 아니라면 WebClient로 개발하시는 것을 추천드립니다. RestTemplate는 5.0부터 유지보수만 이루어집니다. 관련 링크 ) RestTemplate의 exchange, getForEntity, postForEntity 등의 API를 이용하여 응답을 ResponseEntity로 한 번에 메모리에 받아옵니다. 일반적인 경우에는 문제가 되지 않지만 응답의 크기가 수백MB이상이 되면 GC가 발생하게 됩니다. 저도 프로젝트를 진행하는 와중에, GC가 발생하여 확인해보니 응답 사이즈가 600MB ..
먼저, DTO generator라는 플러그인을 설치해줍니다. 그리고 Code > Generate 에서 DTO from JSON을 선택합니다. 변환할 json 값을 입력하고, Validate를 눌러 유효성 확인을 합니다. Settings 탭으로 이동하여, 아래 화면과 같이 선택을 해줍니다. 마지막으로, generate 버튼을 눌러줍니다. 아래와 같이 DTO 코드가 생성되고, abstract를 삭제하여 objectmapper에서 오류가 나지 않도록 해주면 됩니다.
Springboot에서 컨트롤러를 개발하면, JSON으로 값을 받아 Java Object에 값을 저장하고, 반대로 Java Object 값을 JSON 으로 변환해서 응답으로 주는 경우가 많다.( 또는 XML ) 직접 String 으로 JSON 을 만들거나, JSON 값을 Java Object에 일일히 값을 설정해줘도 되지만 Spring과 Jackson 라이브러리를 함께 사용하면, JSON POJO 간 변환을 알아서 해준다. POJO : Plain Old Java Object의 약자로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 순수? 자바 오브젝트 이다. Jackson : Java를 위한 고성능 JSON 라이브러리이다. Spring에서는 기본으로 탑재가 되어있다. POJO 먼저, JSON 값을 저..
특정 filed의 key의 value에 있는 json 값을 파싱하여, 특정 위치에 위치시키는 역활을 한다. 어디에 위치 할지 정하지 않으면, 디폴트 값으로 root에 위치를 시킨다. input { stdin { } } filter { json { source => "message" } } output { stdout { codec => rubydebug } }위의 json filter는 message 라는 키에 있는 값을 json 파싱하여, root에 위치 시킨다. 1 [WARN ] 2020-03-19 20:28:28.002 [[main]>worker7] json - Parsed JSON object/hash requires a target configuration option {:source=>"mes..
- Total
- Today
- Yesterday
- plugin
- Spark
- JPA
- Container
- error
- SpringBoot
- Linux
- Postman
- Java
- logstash
- spring
- Index
- gradle
- mac
- scala
- spring boot
- Log
- docker
- Git
- install
- intellij
- apm
- maven
- Filter
- Size
- JSON
- elasticsearch
- tomcat
- Kibana
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |