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

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

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

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

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

    public boolean isFound(String xcwIndex) {
try {
XconfigLinuxExample example = new XconfigLinuxExample();
XconfigLinuxExample.Criteria criteria = example.createCriteria();
criteria.andXcwindexEqualTo(xcwIndex); long count = xconfigLinuxMapper.countByExample(example);
return count > 0;
}catch (Exception e){
// System.out.println("xcwIndex为空,当次未遍历到flag");
return false;
}
}

    public void getSysTypeByUuid(String uuid) throws IOException, DocumentException {

        switch (uuid){
case "66c221be-6ab2-ef53-1589-fe16877914e2": //windows
importDataXML("66c221be-6ab2-ef53-1589-fe16877914e2");break;
case "66c221be-6ab2-ef53-1589-fe16877914f4": //linux linux系都需要去除 <initcmd> 的干扰
linuxBaseline("66c221be-6ab2-ef53-1589-fe16877914f4");break;
}
}
    public void linuxBaseline(String uuid) throws DocumentException, IOException {

        JSONObject jsonObject = new JSONObject();
String result = null; CompTools compTools = new CompTools(); String path = "C:\\RM-ROOT\\upload\\assetsConfResultXml\\" + uploadedFileName; // 创建 dom4j 解析器
SAXReader reader = new SAXReader();
Document document = reader.read(new File(path));
Element root = document.getRootElement(); List<Element> elements = root.elements();
String flag;
String xcwValue;
Integer noneComplianceConfCount = 0;
for (Element el :
elements) {
for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); ) {
Element element = (Element) i.next(); flag = element.attributeValue("flag");
if (xconfigLinuxService.isFound(flag)) {
XconfigLinux allByXcwIndex = xconfigLinuxService.getAllByXcwIndex(flag);
xcwValue = element.element("cmd").element("value").getText();
result = compTools.linuxComp(allByXcwIndex.getCindex().toString(), flag, xconfigLinuxService, xcwValue);
jsonObject.put(flag, result);
if ("1".equals(result)){
noneComplianceConfCount+=1;
} } else {
// System.out.println("没找到:"+flag);
} }
}
assetsService.saveAssetsData(OriginalFilename,jsonObject,noneComplianceConfCount,uuid);
}

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. Kafka TimeoutException: Batch Expired 问题排查

    当前系统中produer配置request.timeout.ms=30000(30秒),但是broker端配置zookeeper.connection.timeout.ms=1000000,kafka ...

  2. 程序人生:02我来告诉你,一个草根程序员如何进入BAT

    本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字 ...

  3. Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier

    php 连接 sqlserver 时, 程序生成的sql语句, 如果在 sqlserver客户端执行时, 可以正确返回结果, 在程序中执行, 总返回 false, 打开调试也没有任何错误. 无意中发现 ...

  4. PHP过滤

    1.过滤是不是URL(后台过滤) $url = "https://www.baidu.com"; if(!filter_var($url,FILTER_VALIDATE_URL)) ...

  5. ZCMU 2177 Lucky Numbers (easy)

    传送门: http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2177 2177: Lucky Numbers (easy) 时间限制: 2 Sec   ...

  6. 字符型设备驱动程序-first-printf以及点亮LED灯(四)

    怎么样 把 写的 代码 和 编译 放到  开发板上 去执行? 2017年5月22日16:34:13 需要 自己 编译 Linux 内核.. 需要 以下 几个 条件: 1.正常运行 Linux 的 开发 ...

  7. 用 S5PV210 学习 Linux (三) SD卡下载

    学习地址:http://edu.51cto.com/lesson/id-63015.html http://blog.csdn.net/karven_/article/details/52015325 ...

  8. linux 进程间通信方式

    管道: 它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信消息队列: 用于运行于同一台机器上的进程间通信,它和管道很相似,是一个在系统内核中 ...

  9. 区别Lua模式匹配中 %a+ 与 .-

    匹配单词与匹配字符 > print(string.gsub("hello!zzy","%a+","tina"))tina!tina   ...

  10. 用JavaScript编写气泡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...