Browse Source

/*修改武汉站设备告警报文解析异常问题。*/

master
htjcAdmin 9 months ago
parent
commit
e33078cd3e
6 changed files with 52 additions and 22 deletions
  1. +1
    -0
      .gitignore
  2. +0
    -0
      logs/iip-gateway/error.log
  3. +0
    -3
      logs/iip-gateway/info.log
  4. +21
    -0
      logs/inspect-tcpserver/info.log
  5. +11
    -8
      src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java
  6. +19
    -11
      src/main/java/com/inspect/tcpserver/tcp/NettyServer.java

+ 1
- 0
.gitignore View File

@ -33,3 +33,4 @@ build/
/.mvn/
/tcpServer.2022-04-21.log
/log/
/logs/

+ 0
- 0
logs/iip-gateway/error.log View File


+ 0
- 3
logs/iip-gateway/info.log View File

@ -1,3 +0,0 @@
13:57:53.617 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 2140 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
13:57:53.620 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
13:57:57.360 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 4.041 seconds (JVM running for 4.967)

+ 21
- 0
logs/inspect-tcpserver/info.log View File

@ -49,3 +49,24 @@
17:35:29.960 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 37836 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
17:35:29.963 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
17:35:34.024 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 4.386 seconds (JVM running for 5.495)
17:55:19.084 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 45456 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
17:55:19.088 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
17:55:22.553 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 3.76 seconds (JVM running for 4.676)
18:06:35.959 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 24416 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:06:35.963 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:06:39.353 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 3.705 seconds (JVM running for 4.655)
18:09:41.570 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 6080 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:09:41.574 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:09:45.821 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 4.587 seconds (JVM running for 5.699)
18:11:01.755 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 23472 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:11:01.760 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:11:06.336 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 5.033 seconds (JVM running for 6.169)
18:16:54.865 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 40552 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:16:54.874 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:17:03.531 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 9.36 seconds (JVM running for 11.293)
18:17:35.846 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 45032 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:17:35.858 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:17:42.310 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 7.101 seconds (JVM running for 9.036)
18:20:19.597 [main] INFO c.i.t.TcpserverApplicationTests - [logStarting,55] - Starting TcpserverApplicationTests on QYL-HP-ZHAN66 with PID 34856 (started by gabri in E:\qinyl\intellij\src\inspect-tcpserver)
18:20:19.603 [main] INFO c.i.t.TcpserverApplicationTests - [logStartupProfileInfo,651] - No active profile set, falling back to default profiles: default
18:20:27.444 [main] INFO c.i.t.TcpserverApplicationTests - [logStarted,61] - Started TcpserverApplicationTests in 8.384 seconds (JVM running for 10.432)

+ 11
- 8
src/main/java/com/inspect/tcpserver/tcp/DownXml2Json.java View File

@ -23,23 +23,26 @@ public class DownXml2Json {
this.alias = alias;
}
public <T> String DownStreamJson2Xml(String json, Class<T> clazz) {
public <T> String DownStreamJson2Xml(String xml, Class<T> clazz) {
try {
XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder()));
xStream.autodetectAnnotations(true);
xStream.alias(alias, clazz);
T obj = JSON.parseObject(json, clazz);
return xStream.toXML(obj);
xStream.autodetectAnnotations(true);
xStream.ignoreUnknownElements();
xStream.addPermission(AnyTypePermission.ANY);
T obj = (T) xStream.fromXML(xml);
return JSON.toJSONString(obj);
} catch (com.thoughtworks.xstream.XStreamException e) {
logger.error("################ DOWN解析失败[PatrolHost] ################");
logger.error("################ DOWN异常堆栈 ################\n{}", ExceptionUtils.getStackTrace(e));
try {
XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder()));
xStream.autodetectAnnotations(true);
xStream.alias(deviceAlias, clazz);
T obj = JSON.parseObject(json, clazz);
return xStream.toXML(obj);
xStream.autodetectAnnotations(true);
xStream.ignoreUnknownElements();
xStream.addPermission(AnyTypePermission.ANY);
T obj = (T) xStream.fromXML(xml);
return JSON.toJSONString(obj);
} catch (com.thoughtworks.xstream.XStreamException ex) {
logger.error("################ DOWN解析失败[PatrolDevice] ################");
logger.error("################ DOWN异常堆栈 ################\n{}", ExceptionUtils.getStackTrace(ex));


+ 19
- 11
src/main/java/com/inspect/tcpserver/tcp/NettyServer.java View File

@ -201,7 +201,7 @@ public class NettyServer {
command = Integer.parseInt(root.element("Command").getText());
}
logger.info("################ 消息类型: {} ################", type);
logger.info("################ 消息类型: {}, 消息体: ################ \n{}", type, xml);
//判断是否重发
if (type == SystemType.system) {
if (command == SystemType.has_response || command == SystemType.no_response) {
@ -258,45 +258,53 @@ public class NettyServer {
}
break;
case PushType.patrolDeviceState:
json = downXml2Json.PatrolDeviceStateControlXml2Json(xml);
// json = downXml2Json.PatrolDeviceStateControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, PatrolDeviceStateControl.class);
logger.info("################ 客户端设备状态数据 ################ \n{}", json);
break;
case PushType.patrolDeviceRunning:
json = downXml2Json.PatrolDeviceRunningControlXml2Json(xml);
// json = downXml2Json.PatrolDeviceRunningControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, PatrolDeviceRuningControl.class);
logger.info("################ 客户端设备运行数据 ################ \n{}", json);
break;
case PushType.nestState:
json = downXml2Json.NestStateControlXml2Json(xml);
// json = downXml2Json.NestStateControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, NestStateControl.class);
logger.info("################ 客户端机巢状态数据 ################ \n{}", json);
break;
case PushType.nestRunning:
json = downXml2Json.NestRunningControlXml2Json(xml);
// json = downXml2Json.NestRunningControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, NestRuningControl.class);
logger.info("################ 客户端机巢运行数据 ################ \n{}", json);
break;
case PushType.location:
json = downXml2Json.LocationControlXml2Json(xml);
// json = downXml2Json.LocationControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, LocationControl.class);
logger.info("################ 客户端设备坐标 ################ \n{}", json);
break;
case PushType.route:
json = downXml2Json.RouteControlXml2Json(xml);
// json = downXml2Json.RouteControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, RouteControl.class);
logger.info("################ 客户端设备路线 ################ \n{}", json);
break;
case PushType.alarm:
//json = down.AlarmControlXml2Json(xml);
// json = down.AlarmControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, AlarmControl.class);
logger.info("################ 客户端设备异常告警 ################ \n{}", json);
break;
case PushType.environment:
//json = downXml2Json.EnvironmentControlXml2Json(xml);
// json = downXml2Json.EnvironmentControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, EnvironmentControl.class);
logger.info("################ 客户端设备上报环境数据 ################ \n{}", json);
break;
case PushType.taskState:
json = downXml2Json.TaskStateControlXml2Json(xml);
// json = downXml2Json.TaskStateControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, TaskStateControl.class);
logger.info("################ 客户端设备任务状态 ################ \n{}", json);
break;
case PushType.result:
json = downXml2Json.TaskResultControlXml2Json(xml);
// json = downXml2Json.TaskResultControlXml2Json(xml);
json = downXml2Json.DownStreamJson2Xml(xml, TaskResultControl.class);
logger.info("################ 客户端巡视结果 ################ \n{}", json);
break;
default:


Loading…
Cancel
Save