前几天新上线项目,tomcat服务器莫名关闭的问题终于发现问题的原因了.
问题在于最新使用的富文本编辑器----飞鱼编辑器.
这几天一直在分析发生问题的原因与情景,发现:
网站前台访问不会发生tomcat自动关闭退出的原因,一旦网站后台维护人员进行信息更新,发生tomcat关闭原因.因为在周末两天,服务器一直运行正常,一到工作日,星期一上午就发生了tomcat自动关闭退出问题.
把精力放到后台,一开始怀疑是上传过大的文件,导致服务器自动关闭退出,但经过了压力测试,在服务器允许的文件大小之内,上传是不会导致服务器自动关闭退出的.
结果在一次无意测试,发现了tomcat自动关闭,检查提交信息,发现是最近更换的富文本编辑器 飞鱼编辑器提交了空内容,结果服务器立刻自动关闭.
检查飞鱼编辑器,发现了upload.jsp页面的这一段代码:
if(sTemp.equals("")) { System.exit(0); }
怪不得,一提交空值,tomcat就关闭退出,一开始还以为是spring哪里出了问题,把上面代码改成:
if(sTemp.equals("")) { sTemp=" "}
再次提交空值,ok,系统正常,服务器也没有再次发生自动关闭的状况.
顺便,把这个页面的System.out全部注释掉,本来在log4j配置里,只输出error信息,结果自从使用了这个编辑器,服务器后台一直大段的打印提交的内容值,到查日志的时候,十分影响阅读.
本来,这个系统最初使用的编辑器是tinymec,而且汉化也全部做好了,使用起来也丝毫不逊色于飞鱼,结果是用户以前使用的一套asp系统,一直使用飞鱼编辑器,强烈要求使用这个编辑器,才发生了这样一个郁闷的错误.
终于解决了.