diff --git a/pom.xml b/pom.xml
index 2ecfad30..9899d275 100644
--- a/pom.xml
+++ b/pom.xml
@@ -207,6 +207,12 @@
2.1.3
+
+ com.google.guava
+ guava
+ 20.0
+
+
com.alibaba.fastjson2
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
index d52f4f6a..d983d410 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
@@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request;
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
+import com.google.common.primitives.Bytes;
import gov.nist.javax.sip.message.SIPRequest;
import gov.nist.javax.sip.message.SIPResponse;
import org.apache.commons.lang3.ArrayUtils;
@@ -196,15 +197,14 @@ public abstract class SIPRequestProcessorParent {
result.add(rawContent[i]);
}
}
- Byte[] bytes = new Byte[0];
- byte[] bytesResult = ArrayUtils.toPrimitive(result.toArray(bytes));
+ byte[] bytesResult = Bytes.toArray(result);
Document xml;
try {
xml = reader.read(new ByteArrayInputStream(bytesResult));
}catch (DocumentException e) {
- logger.warn("[xml解析异常]: 愿文如下: \r\n{}", new String(bytesResult));
- logger.warn("[xml解析异常]: 愿文如下: 尝试兼容性处理");
+ logger.warn("[xml解析异常]: 原文如下: \r\n{}", new String(bytesResult));
+ logger.warn("[xml解析异常]: 原文如下: 尝试兼容性处理");
String[] xmlLineArray = new String(bytesResult).split("\\r?\\n");
// 兼容海康的address字段带有<破换xml结构导致无法解析xml的问题
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
index b67fcc5b..f3b4fc90 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
@@ -233,19 +233,17 @@ public class PlatformServiceImpl implements IPlatformService {
try {
commanderForPlatform.keepalive(parentPlatform, eventResult -> {
// 心跳失败
- if (eventResult.type == SipSubscribe.EventResultType.timeout) {
- // 心跳超时
- ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId());
- // 此时是第三次心跳超时, 平台离线
- if (platformCatch.getKeepAliveReply() == 2) {
- // 设置平台离线,并重新注册
- logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId());
- offline(parentPlatform, false);
- }
-
- }else {
+ if (eventResult.type != SipSubscribe.EventResultType.timeout) {
logger.warn("[国标级联]发送心跳收到错误,code: {}, msg: {}", eventResult.statusCode, eventResult.msg);
}
+ // 心跳失败
+ ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId());
+ // 此时是第三次心跳超时, 平台离线
+ if (platformCatch.getKeepAliveReply() == 2) {
+ // 设置平台离线,并重新注册
+ logger.info("[国标级联] 三次心跳超时, 平台{}({})离线", parentPlatform.getName(), parentPlatform.getServerGBId());
+ offline(parentPlatform, false);
+ }
}, eventResult -> {
// 心跳成功