(1)加入新异常,调用外部程序异常。原外部程序调用异常提示在在返回信息
(2)音视频控制类异常处理,防止出现表单提交,审核时为了防止出现未知异常导致界面出错,catch MaatCovertException修改为catch exeption,根据异常类型进行判断返回界面信息 (3)message.tag不够严谨,修改了success的判断
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
package com.nis.exceptions;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.springframework.context.i18n.LocaleContextHolder;
|
||||||
|
|
||||||
|
import com.nis.util.Configurations;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用外部程序出错异常
|
||||||
|
* @author dell
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class CallExternalProceduresException extends RuntimeException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static final String message=getMsgProp().getProperty("call_external_procedures_failed", "Call external procedures failed");
|
||||||
|
public CallExternalProceduresException() {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
public CallExternalProceduresException(String message) {
|
||||||
|
super(message);
|
||||||
|
|
||||||
|
}
|
||||||
|
public CallExternalProceduresException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取国际化配置文件
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Properties getMsgProp(){
|
||||||
|
Properties msgProp = new Properties();
|
||||||
|
try {
|
||||||
|
String language = LocaleContextHolder.getLocale().getLanguage();
|
||||||
|
if(language.equals("zh_cn")||language.equals("zh")){
|
||||||
|
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_zh_CN.properties"));
|
||||||
|
}else if(language.equals("ru")){
|
||||||
|
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_ru.properties"));
|
||||||
|
}else{
|
||||||
|
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_en.properties"));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
msgProp = null;
|
||||||
|
}
|
||||||
|
return msgProp;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ import com.nis.domain.configuration.AvSignSampleCfg;
|
|||||||
import com.nis.domain.configuration.AvSignSampleCfgModel;
|
import com.nis.domain.configuration.AvSignSampleCfgModel;
|
||||||
import com.nis.domain.maat.ToMaatResult;
|
import com.nis.domain.maat.ToMaatResult;
|
||||||
import com.nis.domain.maat.ToMaatResult.ResponseData;
|
import com.nis.domain.maat.ToMaatResult.ResponseData;
|
||||||
|
import com.nis.exceptions.CallExternalProceduresException;
|
||||||
import com.nis.exceptions.MaatConvertException;
|
import com.nis.exceptions.MaatConvertException;
|
||||||
import com.nis.util.ConfigServiceUtil;
|
import com.nis.util.ConfigServiceUtil;
|
||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
@@ -157,7 +158,11 @@ public class AvController extends BaseController {
|
|||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
logger.error("文件上传失败",e);
|
logger.error("文件上传失败",e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+e.getMessage());
|
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
|
||||||
|
addMessage(redirectAttributes,e.getMessage());
|
||||||
|
}else {
|
||||||
|
addMessage(redirectAttributes,"save_failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+entity.getFunctionId();
|
return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+entity.getFunctionId();
|
||||||
@@ -165,7 +170,17 @@ public class AvController extends BaseController {
|
|||||||
//保存标志样例配置
|
//保存标志样例配置
|
||||||
@RequestMapping(value = {"/sample/saveAudioSignSample"})
|
@RequestMapping(value = {"/sample/saveAudioSignSample"})
|
||||||
public String saveAudioSignSample(Model model,HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes,String ids,AvSignSampleCfg entity){
|
public String saveAudioSignSample(Model model,HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes,String ids,AvSignSampleCfg entity){
|
||||||
|
try{
|
||||||
avCfgService.saveOrUpdateAvSignSample(entity);
|
avCfgService.saveOrUpdateAvSignSample(entity);
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error("saveAudioSignSample failed",e);
|
||||||
|
e.printStackTrace();
|
||||||
|
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
|
||||||
|
addMessage(redirectAttributes,e.getMessage());
|
||||||
|
}else {
|
||||||
|
addMessage(redirectAttributes,"save_failed");
|
||||||
|
}
|
||||||
|
}
|
||||||
return "redirect:" + adminPath +"/ntc/av/sample/audioSignSampleList?functionId="+entity.getFunctionId();
|
return "redirect:" + adminPath +"/ntc/av/sample/audioSignSampleList?functionId="+entity.getFunctionId();
|
||||||
}
|
}
|
||||||
//修改文件样例配置状态
|
//修改文件样例配置状态
|
||||||
@@ -248,10 +263,15 @@ public class AvController extends BaseController {
|
|||||||
if(!oldSampleUrl.equals(entity.getSampleUrl())){
|
if(!oldSampleUrl.equals(entity.getSampleUrl())){
|
||||||
FileUtils.deleteFile(oldSampleUrl);
|
FileUtils.deleteFile(oldSampleUrl);
|
||||||
}
|
}
|
||||||
} catch (MaatConvertException e) {
|
}catch(Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
if(e instanceof MaatConvertException) {
|
||||||
logger.info("音视频文件样例配置下发失败:"+e.getMessage());
|
logger.info("音视频文件样例配置下发失败:"+e.getMessage());
|
||||||
addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
|
addMessage(redirectAttributes,e.getMessage());
|
||||||
|
}else {
|
||||||
|
logger.error("auditAvFileSample failed",e);
|
||||||
|
addMessage(redirectAttributes,"audit_failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId;
|
return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId;
|
||||||
@@ -285,10 +305,15 @@ public class AvController extends BaseController {
|
|||||||
entity.setAuditTime(new Date());
|
entity.setAuditTime(new Date());
|
||||||
try {
|
try {
|
||||||
avCfgService.audioAuditAvSignSample(entity,isAudit);
|
avCfgService.audioAuditAvSignSample(entity,isAudit);
|
||||||
} catch (MaatConvertException e) {
|
}catch(Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
if(e instanceof MaatConvertException) {
|
||||||
logger.info("音视频标识样例配置下发失败:"+e.getMessage());
|
logger.info("音视频标识样例配置下发失败:"+e.getMessage());
|
||||||
addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
|
addMessage(redirectAttributes,e.getMessage());
|
||||||
|
}else {
|
||||||
|
logger.error("auditAvAudioSignSample failed",e);
|
||||||
|
addMessage(redirectAttributes,"audit_failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "redirect:" + adminPath +"/ntc/av/sample/audioSignSampleList?functionId="+functionId;
|
return "redirect:" + adminPath +"/ntc/av/sample/audioSignSampleList?functionId="+functionId;
|
||||||
@@ -313,9 +338,15 @@ public class AvController extends BaseController {
|
|||||||
if(!avSignSampleCfg.getIsValid().equals(avSignSampleCfg.getIsValidOld())){
|
if(!avSignSampleCfg.getIsValid().equals(avSignSampleCfg.getIsValidOld())){
|
||||||
try {
|
try {
|
||||||
avCfgService.auditAvSignSample(avSignSampleCfg);
|
avCfgService.auditAvSignSample(avSignSampleCfg);
|
||||||
} catch (MaatConvertException e) {
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
if(e instanceof MaatConvertException) {
|
||||||
logger.error("下发失败",e);
|
logger.error("下发失败",e);
|
||||||
addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
|
addMessage(redirectAttributes,e.getMessage());
|
||||||
|
}else {
|
||||||
|
logger.error("auditAvSignSample failed",e);
|
||||||
|
addMessage(redirectAttributes,"audit_failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,20 +12,15 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import net.sf.json.JSONArray;
|
|
||||||
import net.sf.json.JSONObject;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringEscapeUtils;
|
import org.apache.commons.lang.StringEscapeUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
import com.nis.domain.configuration.AvFileSampleCfg;
|
import com.nis.domain.configuration.AvFileSampleCfg;
|
||||||
import com.nis.domain.configuration.AvSignSampleCfg;
|
import com.nis.domain.configuration.AvSignSampleCfg;
|
||||||
import com.nis.domain.maat.ToMaatResult;
|
import com.nis.domain.maat.ToMaatResult;
|
||||||
import com.nis.domain.maat.ToMaatResult.ResponseData;
|
import com.nis.exceptions.CallExternalProceduresException;
|
||||||
import com.nis.exceptions.MaatConvertException;
|
import com.nis.exceptions.MaatConvertException;
|
||||||
import com.nis.util.ConfigServiceUtil;
|
import com.nis.util.ConfigServiceUtil;
|
||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
@@ -35,6 +30,9 @@ import com.nis.web.dao.configuration.AvCfgDao;
|
|||||||
import com.nis.web.security.UserUtils;
|
import com.nis.web.security.UserUtils;
|
||||||
import com.nis.web.service.BaseService;
|
import com.nis.web.service.BaseService;
|
||||||
|
|
||||||
|
import net.sf.json.JSONArray;
|
||||||
|
import net.sf.json.JSONObject;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 音视频配置相关事务类
|
* 音视频配置相关事务类
|
||||||
@@ -170,6 +168,7 @@ public class AvCfgService extends BaseService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.info("调用外部程序输入参数:"+param);
|
logger.info("调用外部程序输入参数:"+param);
|
||||||
|
try {
|
||||||
Map resultMap = execShell(sampleCreatelProc,param);
|
Map resultMap = execShell(sampleCreatelProc,param);
|
||||||
logger.info("调用外部程序结果:"+resultMap);
|
logger.info("调用外部程序结果:"+resultMap);
|
||||||
if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
|
if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
|
||||||
@@ -193,7 +192,15 @@ public class AvCfgService extends BaseService{
|
|||||||
logger.info("调用外部程序返回fileId错误,输入的fileId为:"+entity.getCfgId()+",输出的fileId为:"+fileId);
|
logger.info("调用外部程序返回fileId错误,输入的fileId为:"+entity.getCfgId()+",输出的fileId为:"+fileId);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
throw new MaatConvertException(resultMap.get("error")!=null?resultMap.get("error").toString():resultMap.get("message").toString());
|
throw new CallExternalProceduresException();
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
|
||||||
|
throw e;
|
||||||
|
}else {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new CallExternalProceduresException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1092,3 +1092,4 @@ app_desc=Application Description
|
|||||||
tunnel_code=Tunnel Behavior No
|
tunnel_code=Tunnel Behavior No
|
||||||
tunnel_name=Tunnel Behavior Name
|
tunnel_name=Tunnel Behavior Name
|
||||||
tunnel_desc=Tunnel Behavior Description
|
tunnel_desc=Tunnel Behavior Description
|
||||||
|
call_external_procedures_failed=Call external procedures failed
|
||||||
@@ -1096,3 +1096,4 @@ app_desc=\u5E94\u7528\u63CF\u8FF0
|
|||||||
tunnel_code=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u5E8F\u53F7
|
tunnel_code=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u5E8F\u53F7
|
||||||
tunnel_name=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u540D\u79F0
|
tunnel_name=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u540D\u79F0
|
||||||
tunnel_desc=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u63CF\u8FF0
|
tunnel_desc=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u63CF\u8FF0
|
||||||
|
call_external_procedures_failed=\u8C03\u7528\u5916\u90E8\u7A0B\u5E8F\u51FA\u9519
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
</style>
|
</style>
|
||||||
<script type="text/javascript">top.$.jBox.closeTip();</script>
|
<script type="text/javascript">top.$.jBox.closeTip();</script>
|
||||||
<c:if test="${not empty content}">
|
<c:if test="${not empty content}">
|
||||||
<c:if test="${not empty type}"><c:set var="ctype" value="${type}"/></c:if><c:if test="${empty type}"><c:set var="ctype" value="${(fn:containsIgnoreCase(content,'失败') || fn:containsIgnoreCase(content,'failed') || fn:containsIgnoreCase(content,'Exception') || fn:containsIgnoreCase(content,'null'))?'error':'success'}"/></c:if>
|
<c:if test="${not empty type}"><c:set var="ctype" value="${type}"/></c:if><c:if test="${empty type}"><c:set var="ctype" value="${(!fn:containsIgnoreCase(content,'失败') && !fn:containsIgnoreCase(content,'failed') && !fn:containsIgnoreCase(content,'Exception') && !fn:containsIgnoreCase(content,'null'))?'success':'error'}"/></c:if>
|
||||||
<div id="messageBox" class="alert alert-${ctype}"><button data-dismiss="alert" class="close">×</button><spring:message code="${content}"/></div>
|
<div id="messageBox" class="alert alert-${ctype}"><button data-dismiss="alert" class="close">×</button><spring:message code="${content}"/></div>
|
||||||
<script type="text/javascript">if(!top.$.jBox.tip.mess) {top.$.jBox.tip.mess=1;top.$.jBox.tip("<spring:message code='${content}'/>","${ctype}",{persistent:true,opacity:0});$("#messageBox").show();}</script>
|
<script type="text/javascript">if(!top.$.jBox.tip.mess) {top.$.jBox.tip.mess=1;top.$.jBox.tip("<spring:message code='${content}'/>","${ctype}",{persistent:true,opacity:0});$("#messageBox").show();}</script>
|
||||||
</c:if>
|
</c:if>
|
||||||
Reference in New Issue
Block a user