diff --git a/front/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java b/front/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java index 1099fd35..d8850663 100644 --- a/front/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java +++ b/front/src/main/java/com/urpsys/basefront/common/util/RestApiCallUtil.java @@ -152,25 +152,25 @@ public class RestApiCallUtil // Map 변환처리 Map returnMap = null; - // 비정상처리 + // 비정상처리 if(strFullReturnData.indexOf("status")<0) { - String strError = (String)returnObj.get("error"); - String strMessage = (String)returnObj.get("message"); - + // 2026-07-20 방어적 파싱: 필드 부재 시 예외(JSONException) 대신 안전 기본값 → 페이지 전체 붕괴 방지 + String strMessage = returnObj.optString("message", returnObj.optString("error", "요청 처리 중 오류가 발생했습니다.")); + throw new CustomException("9000", strMessage); } - // 정상처리 + // 정상처리 else { // log.info("한번 봅시다 2. => [{}]", returnObj.get("status")); - int iReturnStatus = (int)returnObj.get("status"); - + int iReturnStatus = returnObj.optInt("status", 200); + if(iReturnStatus != 200) { - String strError = (String)returnObj.get("error"); - String strErrTrace = (String)returnObj.get("trace"); - + // 2026-07-20 trace 옵셔널: 없으면 message/error 로 폴백(kong.unirest get() 은 키부재 시 예외) + String strErrTrace = returnObj.optString("trace", returnObj.optString("message", returnObj.optString("error", "요청 처리 중 오류가 발생했습니다."))); + throw new CustomException("9000", strErrTrace); } else @@ -223,13 +223,13 @@ public class RestApiCallUtil JSONObject returnObj = jsonResponse.getBody().getObject(); JSONObject returnObjData = new JSONObject(); - int iReturnStatus = (int)returnObj.get("status"); - + int iReturnStatus = returnObj.optInt("status", 200); + if(iReturnStatus != 200) { - String strError = (String)returnObj.get("error"); - String strErrTrace = (String)returnObj.get("trace"); - + // 2026-07-20 방어적 파싱: trace 부재 시 message/error 폴백(예외→501 붕괴 방지) + String strErrTrace = returnObj.optString("trace", returnObj.optString("message", returnObj.optString("error", "요청 처리 중 오류가 발생했습니다."))); + throw new CustomException("9000", strErrTrace); } else