下面的代码中,因为我是使用

  1. for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); )

迭代器遍历根节点的所有子节点的flag,但是因为linux基线有 <initcmd> 节点,导致flag为空,

在传入service中进行数据库操作时抛出异常未被处理导致程序被挂起,错误信息不输出到console,直接打印到了页面。

解决方法就是try catch处理掉异常并返回false即可

  1. public boolean isFound(String xcwIndex) {
  2. try {
  3. XconfigLinuxExample example = new XconfigLinuxExample();
  4. XconfigLinuxExample.Criteria criteria = example.createCriteria();
  5. criteria.andXcwindexEqualTo(xcwIndex);
  6.  
  7. long count = xconfigLinuxMapper.countByExample(example);
  8. return count > 0;
  9. }catch (Exception e){
  10. // System.out.println("xcwIndex为空,当次未遍历到flag");
  11. return false;
  12. }
  13. }
  1.  
  1. public void getSysTypeByUuid(String uuid) throws IOException, DocumentException {
  2.  
  3. switch (uuid){
  4. case "66c221be-6ab2-ef53-1589-fe16877914e2": //windows
  5. importDataXML("66c221be-6ab2-ef53-1589-fe16877914e2");break;
  6. case "66c221be-6ab2-ef53-1589-fe16877914f4": //linux linux系都需要去除 <initcmd> 的干扰
  7. linuxBaseline("66c221be-6ab2-ef53-1589-fe16877914f4");break;
  8. }
  9. }
  1. public void linuxBaseline(String uuid) throws DocumentException, IOException {
  2.  
  3. JSONObject jsonObject = new JSONObject();
  4. String result = null;
  5.  
  6. CompTools compTools = new CompTools();
  7.  
  8. String path = "C:\\RM-ROOT\\upload\\assetsConfResultXml\\" + uploadedFileName;
  9.  
  10. // 创建 dom4j 解析器
  11. SAXReader reader = new SAXReader();
  12. Document document = reader.read(new File(path));
  13. Element root = document.getRootElement();
  14.  
  15. List<Element> elements = root.elements();
  16. String flag;
  17. String xcwValue;
  18. Integer noneComplianceConfCount = 0;
  19. for (Element el :
  20. elements) {
  21. for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); ) {
  22. Element element = (Element) i.next();
  23.  
  24. flag = element.attributeValue("flag");
  25. if (xconfigLinuxService.isFound(flag)) {
  26. XconfigLinux allByXcwIndex = xconfigLinuxService.getAllByXcwIndex(flag);
  27. xcwValue = element.element("cmd").element("value").getText();
  28. result = compTools.linuxComp(allByXcwIndex.getCindex().toString(), flag, xconfigLinuxService, xcwValue);
  29. jsonObject.put(flag, result);
  30. if ("1".equals(result)){
  31. noneComplianceConfCount+=1;
  32. }
  33.  
  34. } else {
  35. // System.out.println("没找到:"+flag);
  36. }
  37.  
  38. }
  39. }
  40. assetsService.saveAssetsData(OriginalFilename,jsonObject,noneComplianceConfCount,uuid);
  41. }

java程序运行中如果出现异常未被处理,将会被抛到java虚拟机进行处理,程序中断运行后被挂起,在页面输出错误信息(不会输出到console)的更多相关文章

  1. Java输出错误信息与调试信息

    创建一个类,在该类的main()主方法中,使用System类中的out和err两个成员变量来完成调试与错误信息的输出. public class PrintErrorAndDebug { public ...

  2. Java程序-进程中的"进程"

    进程 我们知道程序在磁盘上的时候是静态的,当他被加载到内存的时候,就变成了一个动态的,称为进程,如下图是程序被加载到内存后,在内存中的分布情况如下      此图来自http://blog.csdn. ...

  3. Java程序学习中各阶段的建议

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...

  4. [转] java书籍(给Java程序猿们推荐一些值得一看的好书 + 7本免费的Java电子书和教程 )

    7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...

  5. Java程序员备战“金九银十”必备的面试技巧(附携程Java岗面试题)

    一.面试前的准备 1.1 如何准备一场面试1.1.1 如何获取大厂面试机会1.1.2 面试必知 ①. 准备介绍自己 ②. 关于着装 ③ .随身带上自己的成绩单和简历 ④. 如果笔试就提前刷一些笔试题 ...

  6. PS Studio调用.exe输出错误信息的解决办法

    在一个button_click下调用了如下外部可执行文件: $button1_Click = { #TODO: Place custom script here .\PsExec.exe \\192. ...

  7. make only output error/warning message( 编译时,只输出错误信息和警告信息)

    make > /dev/null 这样,正常的信息被重定向输出到/dev/null,错误和警告信息会输出到标准错误设备(standard error,相对于标准输入/输出设备来说).

  8. C++输出错误信息perror、strerror以及全局变量errno

    头文件:#include<stdio.h>函数:perror.strerror,全局变量:errno.使用方法: FILE *fp; if((fp = fopen("test.t ...

  9. html加载与脚本运行中,由于html未完全加载而导致脚本找不到dom元素无法执行事件

    问题: 如题,就是说alert后出现一个对话框,我没有点关闭,其他js文件或html会被加载吗,我遇到一个问题就是在页面加载时调用一个div的click事件,却没有被执行,但是在调用事件前面加上ale ...

随机推荐

  1. UVA11324 The Largest Clique

    嘟嘟嘟 很自然的想到先tarjan把强联通分量缩点,因为对于一个强联通分量,要么不选,要么全选,所以可看成一个点. 然后转化成了求DAG上的一条最长路(每一个点都有权值).刚开始我想用dijkstra ...

  2. prority_queue自定义类型使用

    struct Tower{ Tower(int h, int p){ height = h; pos = p; } bool operator < (Tower &t) { if (he ...

  3. Spring(六)之自动装配

    一.自动装配模型 下面是自动连接模式,可以用来指示Spring容器使用自动连接进行依赖注入.您可以使用元素的autowire属性为bean定义指定autowire模式. 可以使用 byType 或者  ...

  4. (转)解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误

    重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr ...

  5. git提交代码到码云

    日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...

  6. 修改系统UITableViewCell的ImageView大小

    代码如下: CGSize itemSize = CGSizeMake(, ); UIGraphicsBeginImageContext(itemSize); CGRect imageRect = CG ...

  7. iOS 使约束带动画效果(Animate NSLayoutconstraints)

    http://stackoverflow.com/questions/12926566/are-nslayoutconstraints-animatable http://stackoverflow. ...

  8. mysql5.7 安装版 表不能输入汉字解决方案

    安装版本 的安装目录没有 my.ini 配置文件 在所在表执行 alter table 数据表名 CONVERT TO CHARACTER SET utf8;

  9. MySQL学习【第八篇索引优化】

    一.建立索引的原则(规范) 1.选择唯一性索引 只要可以创建唯一性索引的,一律创建唯一索引(因为速度快呀) 判断是否能创建唯一索引,用count(列名),count(distinct(列名))一样就能 ...

  10. centos7 安装mysql5.7以及一些细节问题

    突然发现我的新服务器上没有mysql,所以想安装一个,上次在我的window电脑上安装MySQL8.0我真的要气死了,和5.7修改密码的方式不一样,弄了很久,所以我决定还是不用安装8.0了,5.7就可 ...