diff --git a/WebContent/WEB-INF/authserver-servlet.xml b/WebContent/WEB-INF/authserver-servlet.xml
index 1342774..58f4c31 100644
--- a/WebContent/WEB-INF/authserver-servlet.xml
+++ b/WebContent/WEB-INF/authserver-servlet.xml
@@ -19,6 +19,8 @@
+
tokenJson(@RequestBody PrettyPrintRequest transFormRequest, HttpServletRequest request,
+ HttpServletResponse response) {
+
+ PrettyPrintResponse prettyPrintResponse = new PrettyPrintResponse();
+
+ try {
+
+ String layoutName = getLayoutName(transFormRequest);
+
+ String result = Optional.ofNullable(MessageFactory.getFactory().getMessage(layoutName))
+ .map(message -> {
+
+ message.setData(transFormRequest.getBizData());
+
+ return message.toXMLString();
+ })
+ .orElseThrow(()-> new IllegalArgumentException("업무 메세지 파싱중 오류"));
+
+
+
+ prettyPrintResponse.setResult(result);
+ String successJson = buildResponseMessage(prettyPrintResponse);
+ return ResponseEntity.ok(successJson);
+ }catch (IllegalArgumentException e) {
+ logger.error("Pretty print 실패", e);
+ prettyPrintResponse.setError(true);
+ prettyPrintResponse.setResult("잘못된 업무데이터 전문 파싱 중 에러");
+ String errorJson = buildResponseMessage(prettyPrintResponse);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorJson);
+ } catch ( Exception e) {
+ logger.error("Pretty print 실패", e);
+ prettyPrintResponse.setError(true);
+ prettyPrintResponse.setResult("업무전문 파싱에 필요한 layout정보 가져오는 중 실패");
+ String errorJson = buildResponseMessage(prettyPrintResponse);
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorJson);
+ }
+
+ }
+
+ String buildResponseMessage(PrettyPrintResponse prettyPrintResponse) {
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ return mapper.writeValueAsString(prettyPrintResponse);
+ }catch (Exception e) {
+ return FALLBACK_ERROR_JSON;
+ }
+
+ }
+
+ private String getLayoutName(PrettyPrintRequest request) throws Exception {
+
+ EAIMessageManager eaiMessageManager = EAIMessageManager.getInstance();
+
+ EAIMessage eaiMessage = eaiMessageManager.getEAIMessage(request.getIntrefaceId());
+
+ TransformManager transformManager = TransformManager.getManager();
+
+ if (eaiMessage == null) {
+
+ throw new IllegalArgumentException("Invalid interfaceId=" + request.getIntrefaceId());
+
+ }
+
+ List serviceMessageList = eaiMessage.getSvcMsgs();
+
+ ServiceMessage serviceMessage = serviceMessageList.get(0);
+
+ String transformId;
+ Transform transformInfo;
+ Layout layout;
+
+ switch (request.getLogProcessNo()) {
+ case "100":
+ transformId = serviceMessage.getCnvMsgID();
+ transformInfo = transformManager.getTransform(transformId);
+ layout = transformInfo.getSourceLayout(0);
+ return layout.getName();
+ case "200":
+ transformId = serviceMessage.getCnvMsgID();
+ transformInfo = transformManager.getTransform(transformId);
+ layout = transformInfo.getTargetLayout();
+ return layout.getName();
+ case "300":
+ transformId = request.isError() ? serviceMessage.getErrRspCnvMsgID() : serviceMessage.getBsRspCnvMsgID();
+ transformInfo = transformManager.getTransform(transformId);
+ layout = transformInfo.getSourceLayout(0);
+ return layout.getName();
+ case "400":
+ transformId = request.isError() ? serviceMessage.getErrRspCnvMsgID() : serviceMessage.getBsRspCnvMsgID();
+ transformInfo = transformManager.getTransform(transformId);
+ layout = transformInfo.getTargetLayout();
+ return layout.getName();
+ default:
+ throw new IllegalArgumentException("Invalid logProcessNo: " + request.getLogProcessNo());
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintRequest.java b/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintRequest.java
new file mode 100644
index 0000000..89a5a4a
--- /dev/null
+++ b/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintRequest.java
@@ -0,0 +1,20 @@
+package com.eactive.eai.custom.pretty;
+
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonSetter;
+import com.fasterxml.jackson.annotation.Nulls;
+
+import lombok.Getter;
+import lombok.ToString;
+
+@SuppressWarnings("serial")
+@ToString
+@Getter
+public class PrettyPrintRequest implements Serializable {
+ private String logProcessNo;
+ private String intrefaceId;
+ private String bizData;
+ @JsonSetter(nulls = Nulls.SKIP)
+ private boolean error = false;
+}
diff --git a/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintResponse.java b/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintResponse.java
new file mode 100644
index 0000000..9032c78
--- /dev/null
+++ b/src/main/java/com/eactive/eai/custom/pretty/PrettyPrintResponse.java
@@ -0,0 +1,19 @@
+package com.eactive.eai.custom.pretty;
+
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonSetter;
+import com.fasterxml.jackson.annotation.Nulls;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@SuppressWarnings("serial")
+@ToString
+@Setter
+public class PrettyPrintResponse implements Serializable {
+ private String result;
+ @JsonSetter(nulls = Nulls.SKIP)
+ private boolean error = false;
+}