From f5a0ac7e86ec947e54f6ef206989b77b22808ee3 Mon Sep 17 00:00:00 2001 From: minuk926 Date: Wed, 18 Jan 2023 18:09:41 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20jaxb=20library=20error=20fix=20=20=20=20?= =?UTF-8?q?=20=20commons-collections=20->=20commons-collections4=EB=A1=9C?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD(=EB=B3=B4=EC=95=88=20=EC=B7=A8=EC=95=BD?= =?UTF-8?q?=EC=A0=90(vulnerable))?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 55 +- .../fims/biz/ec/model/CtznStmtAnsSendDTO.java | 151 +++++ .../kr/xit/fims/biz/ec/model/CtznStmtDTO.java | 4 +- .../biz/ec/model/NatlNewspaperSendXmlDTO.java | 554 ------------------ .../biz/ec/service/EcCtznSttemntService.java | 5 +- .../support/util/xml/XmlParseUtils.java | 22 +- 6 files changed, 209 insertions(+), 582 deletions(-) create mode 100644 src/main/java/kr/xit/fims/biz/ec/model/CtznStmtAnsSendDTO.java delete mode 100644 src/main/java/kr/xit/fims/biz/ec/model/NatlNewspaperSendXmlDTO.java diff --git a/pom.xml b/pom.xml index ebe91223..506b4dcc 100644 --- a/pom.xml +++ b/pom.xml @@ -459,10 +459,15 @@ commons-configuration 1.10 + + + + + - commons-collections - commons-collections - 3.2.1 + org.apache.commons + commons-collections4 + 4.1 commons-lang @@ -472,7 +477,7 @@ org.springmodules spring-modules-jakarta-commons - 0.8 + 0.8a jstl @@ -612,20 +617,36 @@ + + + javax.xml.bind + jaxb-api + 2.3.1 + - - - - - - - - - - - - - + + org.glassfish.jaxb + jaxb-runtime + 2.3.1 + + + diff --git a/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtAnsSendDTO.java b/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtAnsSendDTO.java new file mode 100644 index 00000000..591397f3 --- /dev/null +++ b/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtAnsSendDTO.java @@ -0,0 +1,151 @@ +package kr.xit.fims.biz.ec.model; + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + *
+ * 공공기관 interface
+ * XmlRootElement
+ *     JAXBContext에 등록
+ * XmlAccessorType
+ *     FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩
+ *     NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다.
+ *     PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다.
+ *     PUBLIC_MEMBER - 모든 public getter/setter들은 자동으로 XML에 바운드된다.
+ *
+ * 각 필드 comment중 이관 / 처리결과 / 반송에 따른 값이 차이가 있는경우
+ * 이관 / 처리결과 / 반송 순서로 각각 내용 표시
+ * 
+ */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@XmlRootElement(name = "dmndinfo") +@XmlAccessorType(XmlAccessType.FIELD) +public class CtznStmtAnsSendDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 인터페이스 키: 필수 + * PK : number(30) - YYYYMMDDHH24MISSFF+random(9) + */ + @XmlElement(name = "interface_seq_n") + private String interfaceSeqN; + + /** + * 시스템 구분: 필수 + * char(88) + * EC010008 과태료시스템 + */ + @XmlElement(name = "sys_gubun_c") + private String sysGubunC; + + /** + * 송신 기관 코드: 필수 + * varchar2(7) + * 1140100 / 신청기관코드 / 신청기관코드 + * ex)경기도 - 641000 + */ + @XmlElement(name = "anc_code_v") + private String ancCodeV; + + /** + * 민원 구분: 필수 + * char(3) + * 140:민원이송(기관코드-신문고) / 180: 답변 / 140: 반송(기관코드-연계기관) + */ + @XmlElement(name = "peti_gubun_c") + private String petiGubunC; + + /** + * 민원 신청 번호: 필수 + * varchar2(16) + * 국민신문고에서 생성(국민신문고의 민원 번호), 최초 이송이첩시는 null값 임. + * (신문고에서 생성된 데이터가 있을 경우는 넣어줌) + */ + @XmlElement(name = "peti_no_c") + private String petiNoC; + + /** + * 민원 접수 번호: 필수 + * varchar2(16) + * 국민신문고에서 생성(국민신문고의 접수 번호), 최초 이송이첩시는 null값 임. + * (신문고에서 생성된 데이터가 있을 경우는 넣어줌)" + */ + @XmlElement(name = "civil_no_c") + private String civilNoC; + + //---------------------------------------------------------------------------------------------------- + // 결과(응답) 처리 + //---------------------------------------------------------------------------------------------------- + /** + * 민원 요지: 결과 처리시 필수 + * varchar2(512) + * 민원요지를 입력하면 민원제목대신 민원요지를 표출 + */ + @XmlElement(name = "civil_gist_v") + private String civilGistV; + + /** + * 민원 처리 요약: 결과 처리시 필수 + * clob + * 처리를 요약하여 표시 + */ + @XmlElement(name = "civil_abstract_l") + private String civilAbstractL; + + /** + * 처리 부서 코드: 결과 처리시 필수 + * varchar2(7) + */ + @XmlElement(name = "pcd_dept_v") + private String pcdDeptV; + + /** + * 민원 처리 부서명: 결과 처리시 필수 + * varchar2(50) + */ + @XmlElement(name = "pcd_dept_nm_v") + private String pcdDeptNmV; + + /** + * 민원 처리 담당자 명: 결과 처리시 필수 + * varchar2(50) + */ + @XmlElement(name = "duty_id_v") + private String dutyIdV; + + /** + * 담당자 이메일: 결과 처리시 필수 + * varchar2(64) + */ + @XmlElement(name = "pcd_email_v") + private String pcdEmailV; + + /** + * 담당자 전화 번호: 결과 처리시 필수 + * varchar2(20) + */ + @XmlElement(name = "pcd_tel_v") + private String pcdTelV; + + /** + * 민원 처리 결과: 결과 처리시 필수 + * clob + */ + @XmlElement(name = "pcd_rst_cont_l") + private String pcdRstContL; +} + + diff --git a/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtDTO.java b/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtDTO.java index 8407b58d..f4f23241 100644 --- a/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtDTO.java +++ b/src/main/java/kr/xit/fims/biz/ec/model/CtznStmtDTO.java @@ -306,8 +306,8 @@ public class CtznStmtDTO implements Serializable { //extends ExtlEsbDataType { */ private String ancCodeV; - public static NatlNewspaperSendXmlDTO getCtznStmtAnsDTO(CtznStmtDTO.CtznStmtAns dto) { - return NatlNewspaperSendXmlDTO.builder() + public static CtznStmtAnsSendDTO getCtznStmtAnsDTO(CtznStmtDTO.CtznStmtAns dto) { + return CtznStmtAnsSendDTO.builder() .interfaceSeqN(dto.getInterfaceSeqN()) .sysGubunC(dto.getSysGubunC()) .ancCodeV(dto.getAncCodeV()) diff --git a/src/main/java/kr/xit/fims/biz/ec/model/NatlNewspaperSendXmlDTO.java b/src/main/java/kr/xit/fims/biz/ec/model/NatlNewspaperSendXmlDTO.java deleted file mode 100644 index 9bda5258..00000000 --- a/src/main/java/kr/xit/fims/biz/ec/model/NatlNewspaperSendXmlDTO.java +++ /dev/null @@ -1,554 +0,0 @@ -package kr.xit.fims.biz.ec.model; - -import java.io.Serializable; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -/** - *
- * 공공기관 interface
- * XmlRootElement
- *     JAXBContext에 등록
- * XmlAccessorType
- *     FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩
- *     NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다.
- *     PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다.
- *     PUBLIC_MEMBER - 모든 public getter/setter들은 자동으로 XML에 바운드된다.
- *
- * 각 필드 comment중 이관 / 처리결과 / 반송에 따른 값이 차이가 있는경우
- * 이관 / 처리결과 / 반송 순서로 각각 내용 표시
- * 
- */ -@Getter -@Setter -@NoArgsConstructor -@AllArgsConstructor -@Builder -@ToString -@XmlRootElement(name = "dmndinfo") -@XmlAccessorType(XmlAccessType.FIELD) -public class NatlNewspaperSendXmlDTO implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * 인터페이스 키: 필수 - * PK : number(30) - YYYYMMDDHH24MISSFF+random(9) - */ - @XmlElement(name = "interface_seq_n") - private String interfaceSeqN; - - /** - * 시스템 구분: 필수 - * char(88) - * EC010008 과태료시스템 - */ - @XmlElement(name = "sys_gubun_c") - private String sysGubunC; - - /** - * 송신 기관 코드: 필수 - * varchar2(7) - * 1140100 / 신청기관코드 / 신청기관코드 - * ex)경기도 - 641000 - */ - @XmlElement(name = "anc_code_v") - private String ancCodeV; - - /** - * 민원 구분: 필수 - * char(3) - * 140:민원이송(기관코드-신문고) / 180: 답변 / 140: 반송(기관코드-연계기관) - */ - @XmlElement(name = "peti_gubun_c") - private String petiGubunC; - - /** - * 민원 기관 코드: 필수 - * varchar2(7) - * 최초 신청기관코드 그대로 사용(절대변경불가) - */ - @XmlElement(name = "peti_anc_code_v") - private String petiAncCodeV; - - /** - * 민원 신청 번호: 필수 - * varchar2(16) - * 국민신문고에서 생성(국민신문고의 민원 번호), 최초 이송이첩시는 null값 임. - * (신문고에서 생성된 데이터가 있을 경우는 넣어줌) - */ - @XmlElement(name = "peti_no_c") - private String petiNoC; - - /** - * 민원 접수 번호: 필수 - * varchar2(16) - * 국민신문고에서 생성(국민신문고의 접수 번호), 최초 이송이첩시는 null값 임. - * (신문고에서 생성된 데이터가 있을 경우는 넣어줌)" - */ - @XmlElement(name = "civil_no_c") - private String civilNoC; - - //---------------------------------------------------------------------------------------------------- - // 결과(응답) 처리 - //---------------------------------------------------------------------------------------------------- - /** - * 민원 요지: 결과 처리시 필수 - * varchar2(512) - * 민원요지를 입력하면 민원제목대신 민원요지를 표출 - */ - @XmlElement(name = "civil_gist_v") - private String civilGistV; - - /** - * 민원 처리 요약: 결과 처리시 필수 - * clob - * 처리를 요약하여 표시 - */ - @XmlElement(name = "civil_abstract_l") - private String civilAbstractL; - - /** - * 처리 부서 코드: 결과 처리시 필수 - * varchar2(7) - */ - @XmlElement(name = "pcd_dept_v") - private String pcdDeptV; - - /** - * 민원 처리 부서명: 결과 처리시 필수 - * varchar2(50) - */ - @XmlElement(name = "pcd_dept_nm_v") - private String pcdDeptNmV; - - /** - * 민원 처리 담당자 명: 결과 처리시 필수 - * varchar2(50) - */ - @XmlElement(name = "duty_id_v") - private String dutyIdV; - - /** - * 담당자 이메일: 결과 처리시 필수 - * varchar2(64) - */ - @XmlElement(name = "pcd_email_v") - private String pcdEmailV; - - /** - * 담당자 전화 번호: 결과 처리시 필수 - * varchar2(20) - */ - @XmlElement(name = "pcd_tel_v") - private String pcdTelV; - - /** - * 민원 처리 결과: 결과 처리시 필수 - * clob - */ - @XmlElement(name = "pcd_rst_cont_l") - private String pcdRstContL; - - /** - * 민원 처리 완료 일자: 결과 처리시 필수 - * varchar2(14) : YYYYMMDDHH24MISS - */ - @XmlElement(name = "do_reg_d") - private String doRegD; - - /** - * 민원 처리 결과 첨부 여부: 결과 처리시 필수 - * char(1) - * Y = 첨부, N = 미첨부(default) - */ - @XmlElement(name = "pcd_rst_cont_attach_yn_c") - private String pcdRstContAttachYnC; - - /** - * 민원 실 처리 기관 코드: 처리 결과시 필수 - * varchar2(7) - * ex)경기도 6410000 - */ - @XmlElement(name = "pcd_anc_code_v") - private String pcdAncCodeV; - - /** - * 등록 일자: 필수 - * date - * 반영시에 sysdate(YYYYMMDDHH24MISS)로 생성 - */ - @XmlElement(name = "reg_d") - private String regD; - - /** - * 송신 여부: 필수 - * char(1) - * 1:송신 / 2:수신 / 1:송신 - */ - @XmlElement(name = "send_yn_c") - private String sendYnC; - - /** - * 송신 일자 - * date : YYYYMMDDHH24MISS - */ - @XmlElement(name = "send_d") - private String sendD; - - /** - * 적용 일자: 필수 - * date - * interface DB->XML로 적용 시 sysdate(YYYYMMDDHH24MISS)로 생성 - */ - @XmlElement(name = "apply_d") - private String applyD; - - /** - * 완료 구분: 필수 - * char(1) - * 적용완료:Y OR N (default:N , 각 기관의 실 민원 DB에 반영 후 Y로 변경) - */ - @XmlElement(name = "apply_gubun_c") - private String applyGubunC; - - //------------------------------------------------------------------------------------ - /** - * 처리 구분1: 필수 - * varchar2(400) - * 0 / / 0 - */ - @XmlElement(name = "pcd_gubun_v") - private String pcdGubunV; - - /** - * 처리 구분2: 필수 - * varchar2(400) - */ - @XmlElement(name = "pcd_gubun2_v") - private String pcdGubun2V; - - /** - * 처리 구분3: 처리 결과시 필수 - * varchar2(400) - */ - @XmlElement(name = "pcd_gubun3_v") - private String pcdGubun3V; - //------------------------------------------------------------------------------------- - - /** - * xml 인터페이스 아이디: 필수 - * varchar2(10) - */ - @XmlElement(name = "ifid") - private String ifid; - - /** - * 소스 기관 코드: 필수 - * varchar2(7) - * 해당 연계 기관 코드 - */ - @XmlElement(name = "srcorgcd") - private String srcorgcd; - - /** - * 타겟 기관 코드: 필수 - * varchar2(7) - * 연계 기관에서 insert시 무조건 1140100 값을 넣어 준다 - */ - @XmlElement(name = "tgtorgcd") - private String tgtorgcd; - - - - - - - - - - - - - - - - - - - /** - * 접수 일자 - * date - */ - @XmlElement(name = "anc_reg_d") - private String ancRegD; - - /** - * 한마디 더 - * varchar2(4000) - */ - @XmlElement(name = "more_again_v") - private String moreAgainV; - - //------------------------------------------------------------------------------ - /** - * 만족도 항목1 - * char(8) - */ - @XmlElement(name = "satisfy_c") - private String satisfyC; - - /** - * 만족도 항목2 - * char(8) - */ - @XmlElement(name = "satisfy2_c") - private String satisfy2C; - - /** - * 만족도 항목3 - * char(8) - */ - @XmlElement(name = "satisfy3_c") - private String satisfy3C; - //------------------------------------------------------------------------------ - - /** - * 만족도 입력일 - * date - */ - @XmlElement(name = "satisfy_reg_d") - private String satisfyRegD; - - - - - - - - - - - - - - - - - - - - - - - - - - - /** - * 민원 신청인 명: 이관 / 반송시 필수 - * varchar2(128) - */ - @XmlElement(name = "peter_name_v") - private String peterNameV; - - /** - * 민원 신청인 우편번호: 이관 / 반송시 필수 - * varchar2(7) - */ - @XmlElement(name = "zip_code_c") - private String zipCodeC; - - /** - * 민원 신청인 주소: 이관 / 반송시 필수 - * varchar2(400) - */ - @XmlElement(name = "address_v") - private String addressV; - - /** - * 민원 신청인 이메일 - * varchar2(64) - */ - @XmlElement(name = "email_v") - private String emailV; - - /** - * 민원 신청인 핸드폰 번호 - * varchar2(20) - */ - @XmlElement(name = "cel_no_v") - private String celNoV; - - /** - * 민원 신청인 전화 번호 - * varchar2(20) - */ - @XmlElement(name = "tel_no_v") - private String telNoV; - - /** - * 민원 신청 제목: 이관 / 반송시 필수 - * varchar2(500) - */ - @XmlElement(name = "peti_title_v") - private String petiTitleV; - - /** - * 민원 신청 내용: 이관 / 반송시 필수 - * clob - */ - @XmlElement(name = "peti_reason_l") - private String petiReasonL; - - /** - * 민원 공개 여부: 이관 / 반송시 필수 - * char(1) - * Y = 공개, N = 비공개 (default N) - * Y로 수신 시에도 내부적용 시에는 비공개로 적용 요함(개인정보보호지침) - * 송신 시는 모두 N으로 송신 - */ - @XmlElement(name = "open_yn_c") - private String openYnC; - - /** - * 민원 신청일: 이관 / 반송시 필수 - * date : YYYYMMDDHH24MISS - */ - @XmlElement(name = "peti_reg_d") - private String petiRegD; - - /** - * 민원 신청 내용 첨부 여부: 이관시 필수 - * char(1) - * Y = 첨부, N = 미첨부(default) - */ - @XmlElement(name = "peti_reason_attach_yn_c") - private String petiReasonAttachYnC; - - /** - * 민원 신청 첨부파일 크기: 이관시 필수 - * number(10) - */ - @XmlElement(name = "peti_file_size_n") - private String petiFileSizeN; - - //------------------------------------------------------------- - /** - * 민원 신청 첨부파일명1 - * varchar2(2000) - */ - @XmlElement(name = "peti_file_path1_v") - private String petiFilePath1V; - - /** - * 민원 신청 첨부파일명2 - * varchar2(2000) - */ - @XmlElement(name = "peti_file_path2_v") - private String petiFilePath2V; - - /** - * 민원 신청 첨부파일명3 - * varchar2(2000) - */ - @XmlElement(name = "peti_file_path3_v") - private String petiFilePath3V; - - /** - * 민원 신청 첨부파일명4 - * varchar2(2000) - */ - @XmlElement(name = "peti_file_path4_v") - private String petiFilePath4V; - - /** - * 민원 신청 첨부파일명5 - * varchar2(2000) - */ - @XmlElement(name = "peti_file_path5_v") - private String petiFilePath5V; - //----------------------------------------------------------------------------- - - - @XmlElement(name = "peti_path_gubun_c") - private String petiPathGubunC; - - - - - - - - - - - /** - * 민원 처리 첨부 파일 크기 - * number(10) - */ - @XmlElement(name = "pcd_file_size_n") - private String pcdFileSizeN; - - //------------------------------------------------------------------------ - /** - * 민원 처리 첨부 파일명1 - * varchar2(2000) - */ - @XmlElement(name = "pcd_file_path1_v") - private String pcdFilePath1V; - - /** - * 민원 처리 첨부 파일명2 - * varchar2(2000) - */ - @XmlElement(name = "pcd_file_path2_v") - private String pcdFilePath2V; - - /** - * 민원 처리 첨부 파일명3 - * varchar2(2000) - */ - @XmlElement(name = "pcd_file_path3_v") - private String pcdFilePath3V; - - /** - * 민원 처리 첨부 파일명4 - * varchar2(2000) - */ - @XmlElement(name = "pcd_file_path4_v") - private String pcdFilePath4V; - - /** - * 민원 처리 첨부 파일명5 - * varchar2(2000) - */ - @XmlElement(name = "pcd_file_path5_v") - private String pcdFilePath5V; - //---------------------------------------------------------------------- - - /** - * 민원 처리 기간 - * number(5) - */ - @XmlElement(name = "peti_proc_dur_n") - private String petiProcDurN; - - /** - * 처리 예정일 - * date - */ - @XmlElement(name = "peti_end_d") - private String petiEndD; -} - - diff --git a/src/main/java/kr/xit/fims/biz/ec/service/EcCtznSttemntService.java b/src/main/java/kr/xit/fims/biz/ec/service/EcCtznSttemntService.java index b6e07ce4..c744d1fc 100644 --- a/src/main/java/kr/xit/fims/biz/ec/service/EcCtznSttemntService.java +++ b/src/main/java/kr/xit/fims/biz/ec/service/EcCtznSttemntService.java @@ -17,8 +17,8 @@ import org.springframework.transaction.annotation.Transactional; import kr.xit.fims.biz.FimsConst; import kr.xit.fims.biz.ec.mapper.IEcCtznSttemntMapper; +import kr.xit.fims.biz.ec.model.CtznStmtAnsSendDTO; import kr.xit.fims.biz.ec.model.CtznStmtDTO; -import kr.xit.fims.biz.ec.model.NatlNewspaperSendXmlDTO; import kr.xit.framework.biz.cmm.model.CmmFileDTO; import kr.xit.framework.biz.cmm.service.ICmmFileService; import kr.xit.framework.support.exception.BizRuntimeException; @@ -162,7 +162,8 @@ public class EcCtznSttemntService implements IEcCtznSttemntService { String tgtPath = uploadResPath + fileDtlList.get(0).getFileCours(); final String fileName = dto.getInterfaceSeqN() + ".xml"; - String xmlStr = XmlParseUtils.writeObjectToXml(CtznStmtDTO.CtznStmtAns.getCtznStmtAnsDTO(dto), NatlNewspaperSendXmlDTO.class); + CtznStmtAnsSendDTO sendDto = CtznStmtDTO.CtznStmtAns.getCtznStmtAnsDTO(dto); + String xmlStr = XmlParseUtils.writeObjectToXml(sendDto, kr.xit.fims.biz.ec.model.CtznStmtAnsSendDTO.class); byte[] bytes = xmlStr.getBytes(); Path path = Paths.get(tgtPath + "/" + fileName); diff --git a/src/main/java/kr/xit/framework/support/util/xml/XmlParseUtils.java b/src/main/java/kr/xit/framework/support/util/xml/XmlParseUtils.java index 0e8724b5..4970c864 100644 --- a/src/main/java/kr/xit/framework/support/util/xml/XmlParseUtils.java +++ b/src/main/java/kr/xit/framework/support/util/xml/XmlParseUtils.java @@ -12,9 +12,10 @@ import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; +import kr.xit.fims.biz.ec.model.CtznStmtAnsSendDTO; import kr.xit.fims.biz.ec.model.NatlNewspaperRcvXmlDTO; -import kr.xit.fims.biz.ec.model.NatlNewspaperSendXmlDTO; import kr.xit.framework.support.exception.BizRuntimeException; +import kr.xit.framework.support.util.Checks; import kr.xit.framework.support.util.constants.MessageKey; import lombok.extern.slf4j.Slf4j; @@ -32,7 +33,11 @@ public class XmlParseUtils { Object o = unmarshaller.unmarshal(fileInputStream); return t.cast(o); }catch(IOException | JAXBException e){ - throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, e.getMessage()); + String msg = e.getMessage(); + if(Checks.isEmpty(msg)) msg = e.getCause().toString(); + log.error("XmlParseUtils::readXmlToObject - {}", msg); + e.printStackTrace(); + throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, msg); } } @@ -60,14 +65,18 @@ public class XmlParseUtils { // xml 파일 생성 marshaller.marshal(t, sw); }catch(JAXBException e){ - throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, e.getMessage()); + String msg = e.getMessage(); + if(Checks.isEmpty(msg)) msg = e.getCause().toString(); + log.error("XmlParseUtils::writeObjectToXml - {}", msg); + e.printStackTrace(); + throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, msg); } return sw.toString(); } public static void main(String[] args) { - NatlNewspaperSendXmlDTO sendDto = NatlNewspaperSendXmlDTO.builder() + CtznStmtAnsSendDTO sendDto = CtznStmtAnsSendDTO.builder() .interfaceSeqN("999999") .pcdRstContL("1. 교통질서 확립에 힘써주신 점에 대해 감사드립니다.\n" + "\n" @@ -80,9 +89,8 @@ public class XmlParseUtils { + " 나. 따라서, 위반 차량에 대해 주?정차 위반 과태료 부과 처분이 이루어졌음을 알려드립니다.\n" + "\n" + "5. 안전을 위한 시민 정신에 감사드리며, 답변 내용에 대한 추가 설명이 필요한 경우 군포시청 차량관리과 주차단속팀 박효주 주무관(☏031-390-0291)에게 연락 주시면 친절히 안내해 드리도록 하겠습니다. 감사합니다.") - .addressV("ldlldl") - .applyGubunC("Y").build(); - String xmlStr = XmlParseUtils.writeObjectToXml(sendDto, NatlNewspaperSendXmlDTO.class); + .build(); + String xmlStr = XmlParseUtils.writeObjectToXml(sendDto, CtznStmtAnsSendDTO.class); log.debug(xmlStr); log.debug("\n\n\n");