调试往往能显示一个编程人员的经验和水平,因为新手在代码能够“1039(一路畅通)”的时候还算是进展顺利,一旦遇到bug,而又缺少调试经验技巧,就要“塞车”很久,甚至一天的时间连一个坎也过不去。写代码酷似开车,选对了路(思路对了)就会一路畅通;而如果走近了死胡同,只有“倒车(推倒重来)”的份了。这就象实习司机与老司机的区别一样,如果车开着开着忽然熄火了,实习司机估计只能等待救兵了,而老司机倒是可以想象前因后果,动手自己搞定。诚然,冰冻三尺,非一日之寒,即使是新手,也不要着急,要懂得如何积累,如何使自己的“调试百宝箱”日益鼓起来。
如何记录自己的调试经验呢?你可以选一个小工具,比如一个小
软件,以前用过一个,忘记叫什么,可以分类记载各种你的调试经验记录,比如数据库的,程序设计的,当然,你也可以把常用代码存起来。另外一个好的方式就是写下来,因为毕竟我们的记忆能力是有限的,车房已经占了半个脑袋,知识挤在车缝墙角,迟早会被湮灭的,写的方式有很多种,写blog就不错嘛,在51cto写blog就会是个更好的选择了。嘿嘿(顺便帮管家小废同学做个广告。。。)
下午的安排是这样的,被同学叫去打球,结果说特招体育特长生考试,体育馆闭馆,于是,就近来了实验室(本来要睡觉的)。启动weblogic,输入
http://localhost:7001/,仍旧是Error 404 Not Found!! 昨天写着写着就这样了,因为赶上同学喊,就以为重启一下wl就好了呢,谁知道不灵验!如何是好?这时,我意识到,是出bug了,而不是重启就能解决的了。于是,我把部署好的web applicaiton卸载掉,重新部署。结果部署就不成功,提示错误:
Exception:weblogic.management.ApplicationException: Prepare failed. Task Id = 1 Module: bjmi Error: [HTTP:101179][HTTP] Error
occurred while parsing descriptor in Web application "D:\bea\user_projects\domains\bjmidomain\applications\bjmi"
[Path="D:\bea\user_projects\domains\bjmidomain\applications", URI="bjmi" org.xml.sax.SAXParseException: The entity name must
immediately follow the '&' in the entity reference.
于是,使出杀手锏——google一下"The entity name must immediately follow the '&' in the entity reference. "搜索结果一大堆,大部分是英文的,怎么说的都有,有的说web.xml的格式不对,有的说是其中的如下部分设置不对:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
我屏蔽了这个还是不成,因为之前也是这么写的,一直没有发现错误。这时,我注意到了错误提示中一个重要暗示——'&' ,看到web.xml中有如下一段:
<filter>
<filter-name>GlobalFilter</filter-name>
<description>refresh & internet filter</description>
<filter-class>cn.gov.bjmi.filter.GlobalFilter</filter-class>
</filter>
脑中闪过当时似乎就是添加了& internet filter后出现的问题,于是,将"&"改为"and",重新部署,一切ok!
然后,我又试验了一下,去掉"&"与"internet filter"之间的空格,因为,根据错误提示可能这样会可以,但是,答案是否定的。去掉前后的空格依旧不成,于是,老老实实地使用了"and"代替"&"。
之后那叫一个顺,解决掉了课题最核心的部分,因为这部分一直在两个方案中权衡,路线已经选择了很久,今天定了一条,一路畅通就过来了,拿到了最核心的访问日志,下一步就是开始分析日志了。