修改ExchangeService 抽象定义msg , xml ,json 间的转换
This commit is contained in:
@@ -37,7 +37,7 @@ public class KafkaController {
|
|||||||
kafkaservice.msgSend(topicName, msg);
|
kafkaservice.msgSend(topicName, msg);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
try {
|
try {
|
||||||
String jsonStr = exchangeService.xmlstrToJson(msg);
|
String jsonStr = exchangeService.xmlMsgToJsonMsg(msg);
|
||||||
kafkaservice.msgSend(topicName, jsonStr);
|
kafkaservice.msgSend(topicName, jsonStr);
|
||||||
} catch (Exception e2) {
|
} catch (Exception e2) {
|
||||||
throw new RuntimeException(e2);
|
throw new RuntimeException(e2);
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class MsgHandlerDispatcher {
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MSG msg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||||
String type = msg.getMETA().getTYPE().name();
|
String type = msg.getMETA().getTYPE().name();
|
||||||
String subType = msg.getMETA().getSTYP().name();
|
String subType = msg.getMETA().getSTYP().name();
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class FDELHandler extends FlopBaseHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerResult run(Cminmsg cminmsg) {
|
public HandlerResult run(Cminmsg cminmsg) {
|
||||||
MSG msg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||||
FLOP flop = msg.getFLOP();
|
FLOP flop = msg.getFLOP();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -45,7 +45,7 @@ public class FlopBaseHandler implements IBaseHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerResult run(Cminmsg cminmsg) {
|
public HandlerResult run(Cminmsg cminmsg) {
|
||||||
MSG msg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||||
FLOP flop = msg.getFLOP();
|
FLOP flop = msg.getFLOP();
|
||||||
|
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ public class FlopBaseHandler implements IBaseHandler {
|
|||||||
kafkaservice.msgSend("schd", schdMsg);
|
kafkaservice.msgSend("schd", schdMsg);
|
||||||
|
|
||||||
//send msg
|
//send msg
|
||||||
String msg = exchangeService.xmlstrToJson(
|
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||||
cminmsg.getCminmsgsClobMsg()
|
cminmsg.getCminmsgsClobMsg()
|
||||||
);
|
);
|
||||||
kafkaservice.msgSend("msg", msg);
|
kafkaservice.msgSend("msg", msg);
|
||||||
@@ -110,7 +110,7 @@ public class FlopBaseHandler implements IBaseHandler {
|
|||||||
protected void sendMsg(Cminmsg cminmsg)
|
protected void sendMsg(Cminmsg cminmsg)
|
||||||
{
|
{
|
||||||
//send msg
|
//send msg
|
||||||
String msg = exchangeService.xmlstrToJson(
|
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||||
cminmsg.getCminmsgsClobMsg()
|
cminmsg.getCminmsgsClobMsg()
|
||||||
);
|
);
|
||||||
kafkaservice.msgSend("msg", msg);
|
kafkaservice.msgSend("msg", msg);
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class ADFTHandler extends SchdBaseHandler{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerResult run(Cminmsg cminmsg) {
|
public HandlerResult run(Cminmsg cminmsg) {
|
||||||
MSG msg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||||
if(msg.getSCHD().getFLTR().size() != 1)
|
if(msg.getSCHD().getFLTR().size() != 1)
|
||||||
{
|
{
|
||||||
logger.error("预期每条消息只会包含一个动态航班,当前{}",msg.getSCHD().getFLTR().size());
|
logger.error("预期每条消息只会包含一个动态航班,当前{}",msg.getSCHD().getFLTR().size());
|
||||||
|
|||||||
+3
-3
@@ -54,7 +54,7 @@ public class SchdBaseHandler implements IBaseHandler{
|
|||||||
{
|
{
|
||||||
//发送日航班消息的通知给前端,让前端重新加载全部动态
|
//发送日航班消息的通知给前端,让前端重新加载全部动态
|
||||||
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
||||||
MSG dnldMsg = exchangeService.xmlstrToObject(clobMsg, MSG.class);
|
MSG dnldMsg = exchangeService.xmlToMsg(clobMsg);
|
||||||
|
|
||||||
int recs = dnldMsg.getSCHD().getRECS();
|
int recs = dnldMsg.getSCHD().getRECS();
|
||||||
logger.info("发送日计划到kafka,条数:{}",recs);
|
logger.info("发送日计划到kafka,条数:{}",recs);
|
||||||
@@ -73,7 +73,7 @@ public class SchdBaseHandler implements IBaseHandler{
|
|||||||
protected void sendMsg(Cminmsg cminmsg)
|
protected void sendMsg(Cminmsg cminmsg)
|
||||||
{
|
{
|
||||||
//send msg
|
//send msg
|
||||||
String msg = exchangeService.xmlstrToJson(
|
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||||
cminmsg.getCminmsgsClobMsg()
|
cminmsg.getCminmsgsClobMsg()
|
||||||
);
|
);
|
||||||
kafkaservice.msgSend("msg", msg);
|
kafkaservice.msgSend("msg", msg);
|
||||||
@@ -92,7 +92,7 @@ public class SchdBaseHandler implements IBaseHandler{
|
|||||||
kafkaservice.msgSend("schd", schdMsg);
|
kafkaservice.msgSend("schd", schdMsg);
|
||||||
|
|
||||||
//send msg
|
//send msg
|
||||||
String msg = exchangeService.xmlstrToJson(
|
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||||
cminmsg.getCminmsgsClobMsg()
|
cminmsg.getCminmsgsClobMsg()
|
||||||
);
|
);
|
||||||
kafkaservice.msgSend("msg", msg);
|
kafkaservice.msgSend("msg", msg);
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public class CminmsgServiceImpl implements ICminmsgService {
|
|||||||
.stream()
|
.stream()
|
||||||
.filter(x->{
|
.filter(x->{
|
||||||
String msgBlob = x.getCminmsgsClobMsg();
|
String msgBlob = x.getCminmsgsClobMsg();
|
||||||
MSG msg = exchangeService.xmlstrToObject(msgBlob, MSG.class);
|
MSG msg = exchangeService.xmlToMsg(msgBlob);
|
||||||
String type = msg.getMETA().getTYPE().name();
|
String type = msg.getMETA().getTYPE().name();
|
||||||
String subType = msg.getMETA().getSTYP().name();
|
String subType = msg.getMETA().getSTYP().name();
|
||||||
return type.equals("SCHD") && subType.equals("RESP");
|
return type.equals("SCHD") && subType.equals("RESP");
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class CmoutmsgServiceImpl implements ICmoutmsgService {
|
|||||||
//发送消息到数据库
|
//发送消息到数据库
|
||||||
Cmoutmsg cmoutmsg = new Cmoutmsg();
|
Cmoutmsg cmoutmsg = new Cmoutmsg();
|
||||||
cmoutmsg.setCoutmsgsDateInserted(new Date());
|
cmoutmsg.setCoutmsgsDateInserted(new Date());
|
||||||
cmoutmsg.setCoutmsgsClobMsg(exchangeService.getCoutmsgsClobMsg(rqfdMsg));
|
cmoutmsg.setCoutmsgsClobMsg(exchangeService.msgToXml(rqfdMsg));
|
||||||
cmoutmsg.setRoutingid(SUBSYSTEMS.OSH5RQFD.name());
|
cmoutmsg.setRoutingid(SUBSYSTEMS.OSH5RQFD.name());
|
||||||
|
|
||||||
Cmoutmsg rtCmoutmsg = cmoutmsgDao.save(cmoutmsg);
|
Cmoutmsg rtCmoutmsg = cmoutmsgDao.save(cmoutmsg);
|
||||||
|
|||||||
+93
-1
@@ -10,10 +10,13 @@ import javax.xml.stream.XMLStreamWriter;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.fasterxml.jackson.core.JsonEncoding;
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import com.fasterxml.jackson.core.JsonParseException;
|
import com.fasterxml.jackson.core.JsonParseException;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.type.TypeFactory;
|
import com.fasterxml.jackson.databind.type.TypeFactory;
|
||||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||||
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
|
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
|
||||||
@@ -24,7 +27,8 @@ import com.gzzn.omms.msgexchangeapi.utils.JsonUtil;
|
|||||||
|
|
||||||
@Service("exchangeService")
|
@Service("exchangeService")
|
||||||
public class ExchangeServiceImpl implements IExchangeService {
|
public class ExchangeServiceImpl implements IExchangeService {
|
||||||
|
|
||||||
|
/*
|
||||||
@Override
|
@Override
|
||||||
public String xmlstrToJson(String xml) throws ExchangeServiceException {
|
public String xmlstrToJson(String xml) throws ExchangeServiceException {
|
||||||
MSG msg = xmlstrToObject(xml,MSG.class); //转具体消息
|
MSG msg = xmlstrToObject(xml,MSG.class); //转具体消息
|
||||||
@@ -91,4 +95,92 @@ public class ExchangeServiceImpl implements IExchangeService {
|
|||||||
throw new ExchangeServiceException(e.getMessage(),e);
|
throw new ExchangeServiceException(e.getMessage(),e);
|
||||||
}
|
}
|
||||||
}// end function
|
}// end function
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MSG xmlToMsg(String xmlStr) throws ExchangeServiceException {
|
||||||
|
try {
|
||||||
|
XmlMapper xmlMapper = new XmlMapper();
|
||||||
|
xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
|
xmlMapper.setAnnotationIntrospector(new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()));
|
||||||
|
return xmlMapper.readValue(xmlStr, MSG.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ExchangeServiceException(e.getMessage(),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String msgToJson(MSG msg) throws ExchangeServiceException {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
|
JsonGenerator jsonGenerator = null;
|
||||||
|
StringWriter out = new StringWriter();
|
||||||
|
|
||||||
|
try {
|
||||||
|
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(out);
|
||||||
|
jsonGenerator.writeStartObject();
|
||||||
|
jsonGenerator.writeObjectField("META", msg.getMETA());
|
||||||
|
|
||||||
|
//
|
||||||
|
String method = "get" + msg.getMETA().getTYPE().name();
|
||||||
|
jsonGenerator.writeObjectField(
|
||||||
|
msg.getMETA().getTYPE().name(),
|
||||||
|
msg
|
||||||
|
.getClass()
|
||||||
|
.getDeclaredMethod(method)
|
||||||
|
.invoke(msg)
|
||||||
|
);
|
||||||
|
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
jsonGenerator.flush();
|
||||||
|
|
||||||
|
return out.toString();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ExchangeServiceException(e.getMessage(),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String msgToXml(MSG msg) throws ExchangeServiceException {
|
||||||
|
try {
|
||||||
|
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());
|
||||||
|
//
|
||||||
|
String method = "get" + msg.getMETA().getTYPE().name();
|
||||||
|
mapper.writeValue(sw,
|
||||||
|
msg
|
||||||
|
.getClass()
|
||||||
|
.getDeclaredMethod(method)
|
||||||
|
.invoke(msg));
|
||||||
|
|
||||||
|
sw.writeEndDocument();
|
||||||
|
|
||||||
|
return out.toString();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ExchangeServiceException(e.getMessage(),e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String xmlMsgToJsonMsg(String xml) throws ExchangeServiceException {
|
||||||
|
MSG msg = xmlToMsg(xml);
|
||||||
|
String json = msgToJson(msg);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,38 @@ import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface IExchangeService {
|
public interface IExchangeService {
|
||||||
|
/*
|
||||||
public String xmlstrToJson(String xml) throws ExchangeServiceException;
|
public String xmlstrToJson(String xml) throws ExchangeServiceException;
|
||||||
public <T> T xmlstrToObject(String xml,Class<T> valueType) throws ExchangeServiceException;
|
public <T> T xmlstrToObject(String xml,Class<T> valueType) throws ExchangeServiceException;
|
||||||
public String objectToXmlstr(Object object) throws ExchangeServiceException;
|
public String objectToXmlstr(Object object) throws ExchangeServiceException;
|
||||||
public String getCoutmsgsClobMsg(MSG msg) throws ExchangeServiceException;
|
public String getCoutmsgsClobMsg(MSG msg) throws ExchangeServiceException;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* xml字符串转msg类
|
||||||
|
* @param xmlStr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public MSG xmlToMsg(String xmlStr) throws ExchangeServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* msg类转json字符串
|
||||||
|
* @param msg
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String msgToJson(MSG msg) throws ExchangeServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* msg类转xml字符串
|
||||||
|
* @param msg
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String msgToXml(MSG msg) throws ExchangeServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* xml 消息字符串转json消息字符串
|
||||||
|
* @param xml
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String xmlMsgToJsonMsg(String xml) throws ExchangeServiceException;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
|||||||
@Override
|
@Override
|
||||||
public Boolean updateByDaySchd(Cminmsg cminmsg) {
|
public Boolean updateByDaySchd(Cminmsg cminmsg) {
|
||||||
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
||||||
MSG dnldMsg = exchangeService.xmlstrToObject(clobMsg, MSG.class);
|
MSG dnldMsg = exchangeService.xmlToMsg(clobMsg);
|
||||||
|
|
||||||
//
|
//
|
||||||
List<SCHD.FLTR> lsFltr = dnldMsg
|
List<SCHD.FLTR> lsFltr = dnldMsg
|
||||||
|
|||||||
Reference in New Issue
Block a user