From bc27d706958b599fea8853c81c86ba673569e8f6 Mon Sep 17 00:00:00 2001 From: jaewohong Date: Mon, 12 Jan 2026 15:23:50 +0900 Subject: [PATCH] merge --- .../impl/HttpClient5AdapterServiceRest.java | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/eactive/eai/adapter/http/client/impl/HttpClient5AdapterServiceRest.java b/src/main/java/com/eactive/eai/adapter/http/client/impl/HttpClient5AdapterServiceRest.java index 1cce281..ad296ca 100644 --- a/src/main/java/com/eactive/eai/adapter/http/client/impl/HttpClient5AdapterServiceRest.java +++ b/src/main/java/com/eactive/eai/adapter/http/client/impl/HttpClient5AdapterServiceRest.java @@ -811,7 +811,17 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp } } //전문에서 추출한 httpHeader값 외 어댑터에서 최종적으로 적용되도록, - String httpSettingJsonStr = prop.getProperty( HTTP_HEADER_SETTING , "{}"); + String httpSettingJsonStr = prop.getProperty( HTTP_HEADER_SETTING ); + + if( StringUtils.isBlank(httpSettingJsonStr) ) + { + if( logger.isInfoEnabled() ) { + logger.info("HTTP_HEADER_SETTING value is not JSONObject Type, skip."); + } + + return; + } + try { JSONObject httpValues = (JSONObject) JSONValue.parse(httpSettingJsonStr); @@ -978,6 +988,16 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp return; } + if (eaiBody instanceof JSONObject) { + JSONObject jsonObject = (JSONObject) eaiBody; + if( jsonObject.containsKey("KJB_ROOTLESS_ARRAY") ) { + ContentType contentTypeObj = ContentType.create(contentType, charset); + JSONArray array = (JSONArray) jsonObject.get("KJB_ROOTLESS_ARRAY"); + StringEntity entity = new StringEntity(array.toJSONString(), contentTypeObj); + method.setEntity(entity); + return; + } + } if (StringUtils.contains(contentType, "application/x-www-form-urlencoded")) { if (eaiBody instanceof JSONObject) { @@ -1490,7 +1510,18 @@ public class HttpClient5AdapterServiceRest extends HttpClient5AdapterServiceSupp return null; } - return (JSONObject) JSONValue.parse(message); + Object obj = JSONValue.parse(message); + + if (obj instanceof JSONObject) { + return (JSONObject) obj; + } else if (obj instanceof JSONArray) { + // 배열일 경우 새로운 객체로 감싸서 반환 + JSONObject wrapper = new JSONObject(); + wrapper.put("KJB_ROOTLESS_ARRAY", obj); + return wrapper; + } + + return null; // 혹은 상황에 맞는 예외 처리 } private Document convertXmlDocument(String message) throws Exception {