From e998ee6624f91bacd5c3ef3eeefa5d60c21f6c80 Mon Sep 17 00:00:00 2001 From: mmihye Date: Mon, 8 Sep 2025 12:17:55 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=20[#154]=20fix:=20objectMapper=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=EA=B4=80=EB=A0=A8=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Journey/Together/global/config/OpenFeignConfig.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java index 677f287..50cf587 100644 --- a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java +++ b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java @@ -8,6 +8,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import feign.Logger; import feign.QueryMapEncoder; @@ -15,6 +17,7 @@ import feign.codec.Decoder; import feign.jackson.JacksonDecoder; import feign.codec.Encoder; +import feign.jackson.JacksonEncoder; import feign.querymap.BeanQueryMapEncoder; @Configuration @@ -40,7 +43,10 @@ public QueryMapEncoder queryMapEncoder() { @Bean public ObjectMapper objectMapper() { ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); // LocalDate, LocalDateTime 지원 + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); // ISO 포맷으로 objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return objectMapper; } From 29c9247c08b8b301aa56b5154e6c96c9acabe1b1 Mon Sep 17 00:00:00 2001 From: mmihye Date: Mon, 8 Sep 2025 12:49:49 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=20[#154]=20fix:=20Feign=20Encoder/Decoder?= =?UTF-8?q?=EB=8F=84=20=EA=B0=99=EC=9D=80=20ObjectMapper=EB=A5=BC=20?= =?UTF-8?q?=EC=A3=BC=EC=9E=85=EB=B0=9B=EC=95=84=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Together/global/config/OpenFeignConfig.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java index 50cf587..fca5660 100644 --- a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java +++ b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java @@ -28,13 +28,8 @@ public class OpenFeignConfig { Logger.Level feignLoggerLevel() { return Logger.Level.BASIC; } - - - @Bean - public Encoder feignEncoder() { - return new SpringEncoder(HttpMessageConverters::new); - } - + @Bean Encoder feignEncoder(ObjectMapper m) { return new JacksonEncoder(m); } + @Bean Decoder feignDecoder(ObjectMapper m) { return new JacksonDecoder(m); } @Bean public QueryMapEncoder queryMapEncoder() { return new BeanQueryMapEncoder(); @@ -49,12 +44,6 @@ public ObjectMapper objectMapper() { objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return objectMapper; } - - @Bean - public Decoder feignDecoder() { - return new JacksonDecoder(objectMapper()); - } - @Bean public Retryer feignRetryer() { // period = 100ms, maxPeriod = 1s, maxAttempts = 3 From 2dddc6372b465eec3dbfd871563e1655522acd87 Mon Sep 17 00:00:00 2001 From: mmihye Date: Mon, 8 Sep 2025 13:12:38 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=20[#154]=20fix:=20=EB=94=94=EC=8A=A4?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=A0=84?= =?UTF-8?q?=EC=86=A1=20=EC=A7=81=EB=A0=AC=ED=99=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EB=95=8C=EB=AC=B8=EC=97=90=20encoder=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Journey/Together/global/config/OpenFeignConfig.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java index fca5660..7ddaf5d 100644 --- a/src/main/java/Journey/Together/global/config/OpenFeignConfig.java +++ b/src/main/java/Journey/Together/global/config/OpenFeignConfig.java @@ -5,6 +5,7 @@ import org.springframework.cloud.openfeign.support.SpringEncoder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; @@ -28,7 +29,13 @@ public class OpenFeignConfig { Logger.Level feignLoggerLevel() { return Logger.Level.BASIC; } - @Bean Encoder feignEncoder(ObjectMapper m) { return new JacksonEncoder(m); } + + @Bean + public Encoder feignEncoder(ObjectMapper objectMapper) { + return new SpringEncoder(() -> new HttpMessageConverters( + new MappingJackson2HttpMessageConverter(objectMapper) + )); + } @Bean Decoder feignDecoder(ObjectMapper m) { return new JacksonDecoder(m); } @Bean public QueryMapEncoder queryMapEncoder() {