diff --git a/src/main/java/com/nis/exceptions/CallExternalProceduresException.java b/src/main/java/com/nis/exceptions/CallExternalProceduresException.java
new file mode 100644
index 000000000..dcf945419
--- /dev/null
+++ b/src/main/java/com/nis/exceptions/CallExternalProceduresException.java
@@ -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;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java
index 4773a6c06..5763bc857 100644
--- a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java
+++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java
@@ -25,6 +25,7 @@ import com.nis.domain.configuration.AvSignSampleCfg;
import com.nis.domain.configuration.AvSignSampleCfgModel;
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.util.ConfigServiceUtil;
import com.nis.util.Constants;
@@ -157,7 +158,11 @@ public class AvController extends BaseController {
}catch(Exception e){
logger.error("文件上传失败",e);
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();
@@ -165,7 +170,17 @@ public class AvController extends BaseController {
//保存标志样例配置
@RequestMapping(value = {"/sample/saveAudioSignSample"})
public String saveAudioSignSample(Model model,HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes,String ids,AvSignSampleCfg entity){
- avCfgService.saveOrUpdateAvSignSample(entity);
+ try{
+ 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();
}
//修改文件样例配置状态
@@ -248,10 +263,15 @@ public class AvController extends BaseController {
if(!oldSampleUrl.equals(entity.getSampleUrl())){
FileUtils.deleteFile(oldSampleUrl);
}
- } catch (MaatConvertException e) {
+ }catch(Exception e){
e.printStackTrace();
- logger.info("音视频文件样例配置下发失败:"+e.getMessage());
- addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
+ if(e instanceof MaatConvertException) {
+ logger.info("音视频文件样例配置下发失败:"+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;
@@ -285,10 +305,15 @@ public class AvController extends BaseController {
entity.setAuditTime(new Date());
try {
avCfgService.audioAuditAvSignSample(entity,isAudit);
- } catch (MaatConvertException e) {
+ }catch(Exception e){
e.printStackTrace();
- logger.info("音视频标识样例配置下发失败:"+e.getMessage());
- addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
+ if(e instanceof MaatConvertException) {
+ logger.info("音视频标识样例配置下发失败:"+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;
@@ -313,9 +338,15 @@ public class AvController extends BaseController {
if(!avSignSampleCfg.getIsValid().equals(avSignSampleCfg.getIsValidOld())){
try {
avCfgService.auditAvSignSample(avSignSampleCfg);
- } catch (MaatConvertException e) {
- logger.error("下发失败",e);
- addMessage(redirectAttributes,this.getMsgProp().getProperty("request_service_failed")+ e.getMessage());
+ }catch(Exception e){
+ e.printStackTrace();
+ if(e instanceof MaatConvertException) {
+ logger.error("下发失败",e);
+ addMessage(redirectAttributes,e.getMessage());
+ }else {
+ logger.error("auditAvSignSample failed",e);
+ addMessage(redirectAttributes,"audit_failed");
+ }
}
}
diff --git a/src/main/java/com/nis/web/service/configuration/AvCfgService.java b/src/main/java/com/nis/web/service/configuration/AvCfgService.java
index 8f5d709ce..5a68dd1e0 100644
--- a/src/main/java/com/nis/web/service/configuration/AvCfgService.java
+++ b/src/main/java/com/nis/web/service/configuration/AvCfgService.java
@@ -12,20 +12,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import com.nis.domain.Page;
import com.nis.domain.configuration.AvFileSampleCfg;
import com.nis.domain.configuration.AvSignSampleCfg;
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.util.ConfigServiceUtil;
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.service.BaseService;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
/**
* 音视频配置相关事务类
@@ -170,30 +168,39 @@ public class AvCfgService extends BaseService{
}
logger.info("调用外部程序输入参数:"+param);
- Map resultMap = execShell(sampleCreatelProc,param);
- logger.info("调用外部程序结果:"+resultMap);
- if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
- String out = resultMap.get("out").toString();//输出参数
- JSONArray resArray =JSONArray.fromObject(out);
- JSONObject resObject = resArray.getJSONObject(0);
- logger.info("调用外部程序输出参数:"+resObject);
- int state = resObject.getInt("state");
- int fileSize = resObject.getInt("fileSize");
- Integer fileId = resObject.getInt("fileId");
- if(state==1 && fileSize>0){//成功
- entity.setIsSampleCreated(1);//样例文件创建成功
+ try {
+ Map resultMap = execShell(sampleCreatelProc,param);
+ logger.info("调用外部程序结果:"+resultMap);
+ if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功
+ String out = resultMap.get("out").toString();//输出参数
+ JSONArray resArray =JSONArray.fromObject(out);
+ JSONObject resObject = resArray.getJSONObject(0);
+ logger.info("调用外部程序输出参数:"+resObject);
+ int state = resObject.getInt("state");
+ int fileSize = resObject.getInt("fileSize");
+ Integer fileId = resObject.getInt("fileId");
+ if(state==1 && fileSize>0){//成功
+ entity.setIsSampleCreated(1);//样例文件创建成功
+ }else{
+ entity.setIsSampleCreated(-1);//样例文件创建失败
+ }
+ if(fileId.equals(entity.getCfgId().intValue())){
+ File uploadSampleFile = new File(entity.getSamplePath());
+ String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile);
+ entity.setSampleMd5(sampleMd5);
+ }else{
+ logger.info("调用外部程序返回fileId错误,输入的fileId为:"+entity.getCfgId()+",输出的fileId为:"+fileId);
+ }
}else{
- entity.setIsSampleCreated(-1);//样例文件创建失败
+ throw new CallExternalProceduresException();
}
- if(fileId.equals(entity.getCfgId().intValue())){
- File uploadSampleFile = new File(entity.getSamplePath());
- String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile);
- entity.setSampleMd5(sampleMd5);
- }else{
- logger.info("调用外部程序返回fileId错误,输入的fileId为:"+entity.getCfgId()+",输出的fileId为:"+fileId);
+ }catch (Exception e) {
+ if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
+ throw e;
+ }else {
+ e.printStackTrace();
+ throw new CallExternalProceduresException();
}
- }else{
- throw new MaatConvertException(resultMap.get("error")!=null?resultMap.get("error").toString():resultMap.get("message").toString());
}
return entity;
}
diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties
index 364a90766..1e52a6034 100644
--- a/src/main/resources/messages/message_en.properties
+++ b/src/main/resources/messages/message_en.properties
@@ -1091,4 +1091,5 @@ app_name=Application Name
app_desc=Application Description
tunnel_code=Tunnel Behavior No
tunnel_name=Tunnel Behavior Name
-tunnel_desc=Tunnel Behavior Description
\ No newline at end of file
+tunnel_desc=Tunnel Behavior Description
+call_external_procedures_failed=Call external procedures failed
\ No newline at end of file
diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties
index 731d4a8dd..000d7069b 100644
--- a/src/main/resources/messages/message_zh_CN.properties
+++ b/src/main/resources/messages/message_zh_CN.properties
@@ -1095,4 +1095,5 @@ app_name=\u5E94\u7528\u540D\u79F0
app_desc=\u5E94\u7528\u63CF\u8FF0
tunnel_code=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u5E8F\u53F7
tunnel_name=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u540D\u79F0
-tunnel_desc=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u63CF\u8FF0
\ No newline at end of file
+tunnel_desc=\u52A0\u5BC6\u96A7\u9053\u884C\u4E3A\u63CF\u8FF0
+call_external_procedures_failed=\u8C03\u7528\u5916\u90E8\u7A0B\u5E8F\u51FA\u9519
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/sys/message.tag b/src/main/webapp/WEB-INF/tags/sys/message.tag
index 5659b0b43..3b35d6bb0 100644
--- a/src/main/webapp/WEB-INF/tags/sys/message.tag
+++ b/src/main/webapp/WEB-INF/tags/sys/message.tag
@@ -11,7 +11,7 @@
-
+
\ No newline at end of file