From dafe80f8bcc91db5a8833902323fb62b91f395ed Mon Sep 17 00:00:00 2001 From: curry772 Date: Fri, 5 Jun 2026 14:06:40 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20SiftingAppender=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EB=9D=BD=20=ED=95=B4=EA=B2=B0=20=EB=B0=8F=20=EA=B1=B0=EB=9E=98?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8=20on/off=20=EC=A0=9C=EC=96=B4=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 - DJErpApiAdapterController: MDC 제어를 TxSiftContext.begin/end로 교체 - TxSiftContext.end()를 별도 finally로 분리하여 항상 실행 보장 - elink-online-core: Logger SiftingAppender 개선 (submodule) - elink-online-common: TxSiftContext 추가 (submodule) --- elink-online-common | 2 +- elink-online-core | 2 +- .../controller/DJErpApiAdapterController.java | 49 ++++++++----------- 3 files changed, 22 insertions(+), 31 deletions(-) diff --git a/elink-online-common b/elink-online-common index f3c2e64..037fcd6 160000 --- a/elink-online-common +++ b/elink-online-common @@ -1 +1 @@ -Subproject commit f3c2e64191b739279437cb2a9125cfcb53a3fbce +Subproject commit 037fcd63026c09137a1ece922ca44d9efcca90c1 diff --git a/elink-online-core b/elink-online-core index 8f75138..658f2a0 160000 --- a/elink-online-core +++ b/elink-online-core @@ -1 +1 @@ -Subproject commit 8f7513865e5651eed76cc383a297ab642d31031f +Subproject commit 658f2a048534ea8003817a2ac81d9614182fa473 diff --git a/src/main/java/com/eactive/eai/adapter/controller/DJErpApiAdapterController.java b/src/main/java/com/eactive/eai/adapter/controller/DJErpApiAdapterController.java index c5a464a..616d4b1 100644 --- a/src/main/java/com/eactive/eai/adapter/controller/DJErpApiAdapterController.java +++ b/src/main/java/com/eactive/eai/adapter/controller/DJErpApiAdapterController.java @@ -1,7 +1,6 @@ package com.eactive.eai.adapter.controller; import java.util.Date; -import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -9,14 +8,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; -// jwhong -import org.json.simple.JSONObject; -import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.util.AntPathMatcher; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -25,24 +20,20 @@ import com.eactive.eai.adapter.AdapterManager; import com.eactive.eai.adapter.AdapterPropManager; import com.eactive.eai.adapter.AdapterVO; import com.eactive.eai.adapter.http.HttpStatusException; -import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterManager; import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterUri; -import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilter; -import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilterFactory; import com.eactive.eai.adapter.http.dynamic.filter.JwtAuthException; import com.eactive.eai.adapter.service.DJErpApiAdapterService; import com.eactive.eai.common.TransactionContextKeys; import com.eactive.eai.common.exception.ExceptionUtil; import com.eactive.eai.common.server.EAIServerManager; -import com.eactive.eai.common.stdmessage.STDMessageManager; -import com.eactive.eai.common.stdmessage.STDMsgInfoAddOnVO; import com.eactive.eai.common.util.DatetimeUtil; import com.eactive.eai.common.util.InboundErrorLogger; import com.eactive.eai.common.util.Logger; import com.eactive.eai.common.util.MessageUtil; import com.eactive.eai.common.util.TxFileLogger; +import com.eactive.eai.common.util.TxSiftContext; import com.eactive.eai.common.util.UUIDGenerator; import com.eactive.eai.inbound.error.InboundErrorInfoVO; @@ -116,7 +107,8 @@ public class DJErpApiAdapterController implements HttpAdapterServiceKey { Properties transactionProp = new Properties(); String uuid = UUIDGenerator.getUUID().toString().replaceAll("-", ""); transactionProp.setProperty(TransactionContextKeys.TRANSACTION_UUID, uuid); - MDC.put(Logger.DISCRIMINATOR, transactionProp.getProperty(TransactionContextKeys.TRANSACTION_UUID)); + + TxSiftContext.begin(uuid); // jwhong, put api received time, eaiSvcCode transactionProp.put(INBOUND_REQUESTED_TIME, receivedTimeStr); @@ -171,12 +163,11 @@ public class DJErpApiAdapterController implements HttpAdapterServiceKey { */ try { TxFileLogger.logTxFile(transactionProp, responseData, "[IN_SEND]"); - MDC.remove(Logger.DISCRIMINATOR); - servletRequest.setAttribute(TransactionContextKeys.TRANSACTION_PROP, transactionProp); - } catch (Exception e) { logger.warn("http header db logging fail.", e); + } finally { + TxSiftContext.end(); } } return responseEntity; @@ -260,21 +251,21 @@ public class DJErpApiAdapterController implements HttpAdapterServiceKey { InboundErrorLogger.error(errorInfoVO); } - private String makeResponseBodyMsg() { - - Map dataMap = new HashMap<>(); - dataMap.put("result", 1); - Map map = new HashMap<>(); - - map.put("code", "200"); - map.put("data", dataMap); - map.put("message", "정상 처리 되었습니다."); - - JSONObject json = new JSONObject(); - json.putAll(map); - - return json.toJSONString(); - } +// private String makeResponseBodyMsg() { +// +// Map dataMap = new HashMap<>(); +// dataMap.put("result", 1); +// Map map = new HashMap<>(); +// +// map.put("code", "200"); +// map.put("data", dataMap); +// map.put("message", "정상 처리 되었습니다."); +// +// JSONObject json = new JSONObject(); +// json.putAll(map); +// +// return json.toJSONString(); +// } /* * private String makeResponseBodyMsg(String asyncMsgStyle) {