这段时间,连续接到好几个供应商的电话或邮件,反应点击询价系统报价界面的“提交”按钮没有半点反应,我当时就懵了,纳闷无比,这段时间没有修改更新过一个代码文件,怎么会好端端的突然就没有反应了呢? 不返回成功的提示就罢了,那失败了也应该会弹出错误信息啊,但是错误信息也没有,整个反应就是按钮失效一样。更匪夷所思的是,根据数据库的报价记录表明,有些供应商可以正常使用,内部业务人员也都可以正常操作,我还详细查看了Tomcat的日志,没有发觉“提交”报价时有异常信息输出,不过有一点发现,似乎点击按钮后都没用执行Ajax方法的提交报价action,那说明ajax方法失效了??? 猜想要么是ajax方法的缘故,要么就是对方的浏览器不支持ajax方法的缘故。还猜想是对方session超时,所以导致该方法失效,还有可能是近期公司网络调整,所以系统不稳当。。。真是什么乱七八糟的原因都想了。
暂时解决不了,只有让供应商先用批量报价功能,抱着侥幸心理,希望过两天能自然恢复常态,结果只是自我麻痹,哈哈~ 昨天都好几个供应商发邮件到信息室公共邮箱反应问题了,看来这个问题还真的找找原因解决不可!我用自己的账号和供应商的账号,都分别对两台均衡负载Tomcat服务器上的应用进行了测试,中英文版也都分别进行了一一测试,一切正常。无奈检查下JSP页面的Javascript代码吧,突然猜想会不会是做数据校验的checkData方法出的错,是不是不能在另一个javascript方法里判断别的javascript方法返回值?只是无意又回头过了一遍checkData()方法,突然发现有些从文本框取值赋给变量的语句后面都没有跟分号,于是一一补上,再在提交报价的javascript方法里再执行checkData方法后面加上弹出框,看是否能走到这一步,让一家HK供应商配合我进行了测试,原本想这只是查找问题的第一步,没想到供应商反应说点击“提交”按钮后,弹出“报价成功”的信息了!!!哇,没想到问题居然就是这个小小的分号引起的!!!
害人啊,害我想了那么久,还以为发生了灵异事件。。。 但是我还是想不明白,为什么之前可以用的好好的,后面就部分人使用就不行了呢????
——————————————————华丽的分割线——————————————————————————————————
分号修复并更新线上代码以后,平静了几天,没料到又有供应商反应“提交”按钮点击又无任何反应了,和之前描述的故障一模一样!我郁闷了,到底是什么原因引起的??? 要了一个供应商配合我做测试,看是JSP页面javascript代码验证数据环节出错,还是Ajax方法的原因。一直非常纳闷,为什么Ajax提交的Action方法执行都没执行?!!!
难道是Ajax方法不稳定?那也不对,其他用Ajax实现的操作都没有任何问题和故障。也怀疑判断验证数据方法(checkData())返回值的Javascript代码写的不正确,不过跟供应商的测试结果表明,在提交报价的Ajax方法前,代码运行都没有任何问题。显然是Ajax出问题了。仔细翻看了生产服务器上的Tomcat日志,一大堆输出数据,看的眼花缭乱,不过欣喜的是居然让我发现了一个异常:
Could not find action or result
No result defined for action com.szair.smartme.vender.action.QuotationAction and result input
此异常如何解决的,可参考另一篇日志: