From bd5fc8191d8c6612aaab5aeb275b7375920136a9 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Mon, 7 Jan 2019 17:28:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E6=8D=A2cmoutmsg=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=9A=84xml=20=E5=8E=BB=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 +++ .../omms/msgexchangeapi/entity/msg/MSG.java | 3 ++ .../service/CmoutmsgServiceImpl.java | 2 +- .../service/exchange/ExchangeServiceImpl.java | 39 ++++++++++++++++++- .../service/exchange/IExchangeService.java | 2 + 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f32a36d7..3257dfe7 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,12 @@ + + com.fasterxml.woodstox + woodstox-core + 5.1.0 + + com.oracle ojdbc6 diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MSG.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MSG.java index 0498cf62..5231ca0b 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MSG.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MSG.java @@ -8,6 +8,8 @@ package com.gzzn.omms.msgexchangeapi.entity.msg; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import java.io.Serializable; import java.util.ArrayList; @@ -184,6 +186,7 @@ public class MSG implements Serializable { + private final static long serialVersionUID = 1L; @XmlElement(name = "META", required = true) @JsonProperty("META") diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImpl.java index 69d9e2c5..5c76c25a 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImpl.java @@ -57,7 +57,7 @@ public class CmoutmsgServiceImpl implements ICmoutmsgService { //发送消息到数据库 Cmoutmsg cmoutmsg = new Cmoutmsg(); cmoutmsg.setCoutmsgsDateInserted(new Date()); - cmoutmsg.setCoutmsgsClobMsg(exchangeService.objectToXmlstr(rqfdMsg)); + cmoutmsg.setCoutmsgsClobMsg(exchangeService.getCoutmsgsClobMsg(rqfdMsg)); cmoutmsg.setRoutingid(SUBSYSTEMS.OSH5RQFD.name()); Cmoutmsg rtCmoutmsg = cmoutmsgDao.save(cmoutmsg); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java index 06e3f470..b6bd34f7 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java @@ -1,9 +1,15 @@ package com.gzzn.omms.msgexchangeapi.service.exchange; import java.io.IOException; +import java.io.StringWriter; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; import org.springframework.stereotype.Service; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -44,7 +50,6 @@ public class ExchangeServiceImpl implements IExchangeService { @Override public String objectToXmlstr(Object object) throws ExchangeServiceException { - try { XmlMapper xmlMapper = new XmlMapper(); xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true); @@ -54,4 +59,36 @@ public class ExchangeServiceImpl implements IExchangeService { throw new ExchangeServiceException(e.getMessage(),e); } } + + @Override + public String getCoutmsgsClobMsg(MSG msg) { + try { + // First create Stax components we need + XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory(); + XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newFactory(); + + StringWriter out = new StringWriter(); + XMLStreamWriter sw = xmlOutputFactory.createXMLStreamWriter(out); + + // then Jackson components + XmlMapper mapper = new XmlMapper(xmlInputFactory); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + + sw.writeStartDocument(); + sw.writeStartElement("MSG"); + sw.writeNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); + sw.writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "noNamespaceSchemaLocation", "unisysaodbsis.xsd"); + + // Write whatever content POJOs... + mapper.writeValue(sw, msg.getMETA()); + mapper.writeValue(sw, msg.getRQFD()); + + sw.writeEndDocument(); + + return out.toString(); + } catch (Exception e) { + throw new ExchangeServiceException(e.getMessage(),e); + } + }// end function } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/IExchangeService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/IExchangeService.java index 28d50485..8b62367e 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/IExchangeService.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/IExchangeService.java @@ -1,5 +1,6 @@ package com.gzzn.omms.msgexchangeapi.service.exchange; +import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException; /** @@ -11,4 +12,5 @@ public interface IExchangeService { public String xmlstrToJson(String xml) throws ExchangeServiceException; public T xmlstrToObject(String xml,Class valueType) throws ExchangeServiceException; public String objectToXmlstr(Object object) throws ExchangeServiceException; + public String getCoutmsgsClobMsg(MSG msg) throws ExchangeServiceException; }