一个空格惹的祸

来源:互联网 发布:linux vim 查找命令 编辑:程序博客网 时间:2024/05/21 05:22

最近有朋友咨询我一个问题,问题的最终原因让人大跌眼镜,这里记录分享一下,看到的朋友多注意了!

问题解决过程以Q&A的方式来说说吧!

Q:你好,我最近遇到一个很诡异的问题,想请教一下,

我的tomcat部署了项目后,直接startup启动,启动到快完成的时候,窗口就关闭了,

日志中也没有错误记录,idea中也无法启动,启动到同一步的时候tomcat就挂起停止然后销毁了,

没有任何报错,但是我在eclipse中可以正常启动,所使用均为同一个tomcat,环境变量没有问题,

所使用的均为同一个jdk,我把我的工程和tomcat发给同事,在同事电脑上可以正常启动,

可能是哪里的问题,找了好久都找不出问题所在。

A:如果是把Tomcat完整的考过去的话,那应该还是和环境或启动时的默认参数有关系。
试试把Tomcat的work,temp目录下的内容删除;
没有项目能正常启动吗?
Catalina.out总应该有内容吧?
配置Tomcat以Debug模式启动,用Eclipse远程调试下看看。

Q:一个很简单的项目可以启动,也能正常访问,空服务器也能正常启动,
我每次启动前都把work下的内容以及日志清理了的,日志里面没有任何的错误信息,
就是窗口莫名其妙突然关闭,然后就没有了,环境变量、jdk、tomcat我全部重新弄了一遍,
还是不行,环境变量检查了很多次没有问题,有问题也不可能编译得了,几个同事都能正常启动,
我把他们的tomcat拷贝到我的电脑上,又不行了,完全一头雾水

A:你们的项目中是不是用到了和系统相关的,或注册表相关的,代码中有没有 system.exit() 类似的代码?

Q:我知道了,我们系统有个授权验证机制,我的授权出了问题,没有授权或授权到期会把系统强制关闭,
而且又没有任何的提示信息,所以才出现这种情况,真是坑爹,写个日志也好嘛~~
这种安全性的是不想让用户知道的,但没有文档或内部QA的话就是坑自己人了。

Q:原来不是我的授权出了问题,是因为代码中用到了Process,他们之前给路径时没有处理,
导致获取路径时只能获取到空格之前的内容,而我的tomcat放在D:\Program Files (x86)路径下的,
导致每次读取扩展文件时是路径是D:\Program,从而找不到扩展文件,把路径前后加上"\""后问题解决了,
而eclipse的路径我用的是eclipse默认的路径,从而没有空格,所以可以正常授启动。
而我的同事们项目部署路径都没有空格,所以都没有这个问题。
弄了半天,原来是个bug。

小结

人遇到一些小问题的时候,可能稍微变通一下就过去了,

而软件呢?却通常是没有这样的能力的,一个小小的Bug可能产生大大的后果!

记得看过一个新闻“价值18亿元的日本卫星失控 只因一行错误代码”,具体的错误好像就是因为多写了一个分号。

而针对这样的问题有什么好的解决方案呢?

人工智能能解决类似这样的问题吗?

======================文档信息===========================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

==============本文首发于个人微信订阅号(微wx笑)============


5 0
原创粉丝点击