|  |  | 
 |  |  |             }else{ | 
 |  |  |                mqVo.svUserPassword = mqVo.svUserPassword.trim() ; | 
 |  |  |             } | 
 |  |  |             mqVo.poolMaxSize = conf.getSetAttrPlusInt(doc, "config.mqtt", "poolMaxSize", null, 5, 360000, null); | 
 |  |  |             if(mqVo.poolMaxSize <= 1 || mqVo.poolMaxSize > 1000){ | 
 |  |  |                throw new Exception("config.mqtt.poolMaxSize配置的连接池连接最大数量不合法") ; | 
 |  |  |             } | 
 |  |  |             String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ; | 
 |  |  |             if(proAndDevIds == null || proAndDevIds.trim().equals("")){ | 
 |  |  |                throw new Exception("config.mqtt.protocolAndDeviceIds配置不合法") ; | 
 |  |  |             }else{ | 
 |  |  |             mqVo.poolMaxSize = conf.getSetAttrPlusInt(doc, "config.mqtt", "poolMaxSize", null, 1, 1000, null); | 
 |  |  |  | 
 |  |  |             mqVo.sendInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "sendInterval", null, 1, 3600, null) * 1000L ; | 
 |  |  |  | 
 |  |  |             mqVo.reSendTimesByNoResult = conf.getSetAttrPlusInt(doc, "config.mqtt", "reSendTimesByNoResult", null, 0, 100, null); | 
 |  |  |  | 
 |  |  |             mqVo.comCacheTimeout = conf.getSetAttrPlusInt(doc, "config.mqtt", "comCacheTimeout", null, 1, 3600, null) * 1000L ; | 
 |  |  |  | 
 |  |  |             ServerProperties.acceptManureDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptManureDataMinInterval", null, 1, 720, null) * 60 * 1000L ; | 
 |  |  |             ServerProperties.acceptSoilDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptSoilDataMinInterval", null, 1, 720, null) * 60 * 1000L ; | 
 |  |  |             ServerProperties.acceptWeatherDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptWeatherDataMinInterval", null, 1, 720, null) * 60 * 1000L ; | 
 |  |  |  | 
 |  |  |             mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ; | 
 |  |  |             String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, true, null) ; | 
 |  |  |             if(proAndDevIds != null && !proAndDevIds.trim().equals("")){ | 
 |  |  |                proAndDevIds = proAndDevIds.trim() ; | 
 |  |  |                proAndDevIds = proAndDevIds.replaceAll(",", ","); | 
 |  |  |                proAndDevIds = proAndDevIds.replaceAll(";", ";"); | 
 |  |  | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, false, null) ; | 
 |  |  |             if(subTopicAndQos == null || subTopicAndQos.trim().equals("")){ | 
 |  |  |                throw new Exception("config.mqtt.subTopicAndQos配置的主题及Qos不合法") ; | 
 |  |  |             }else{ | 
 |  |  |             String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, true, null) ; | 
 |  |  |             if(subTopicAndQos != null && !subTopicAndQos.trim().equals("")){ | 
 |  |  |                subTopicAndQos = subTopicAndQos.trim() ; | 
 |  |  |                subTopicAndQos = subTopicAndQos.replaceAll(",", ","); | 
 |  |  |                subTopicAndQos = subTopicAndQos.replaceAll(";", ";"); |