发表于: 2018-01-14 23:23:37
1 732
今天完成的事情:
1、顺利处理了昨天HTTP405的BUG问题
(这里要感谢成都分院的杨以杰师兄,因为成都分院周日放假,他今天特地抽出大量时间和我讨论了一下,并帮忙我排查BUG)
经过长时间的测试,并和杨以杰师兄的代码比对过后,发现一个很神奇的现象:代码几乎一模一样,插件和依赖包几乎也是相同,但他那边正常的东西放到我这里就是跑不起来。第一时间我们都没有成功找出原因所在......但在下午,我却偶然发现了问题的所在:
当我为一个包改名的时候,突然发现项目好端端地跑不起来了......
经过排查,发现是原来没有clean的缘故...我突然想起来,是不是昨天的BUG也是因为这个原因呢?我干脆把本地仓库清空了(之前的是在how2java这个网站打包下的),到MAVEN资源池里面重新下来了依赖包、插件,并且clean了再次运行...而这次,我惊喜地发现,一些都恢复正常了!
回头想了想,我终于回忆起来,最初版本的pom.xml文件,我是加了Tomcat的插件的,后来我按任务二的要求改成了jetty,可能是之前Tomcat插件编译产生的东西和后来的产生了冲突。因为Tomcat和jetty的编码解码方式还是不一样的....
本次的事故权当是一个教训吧,告诉我要更加重视开发工具的使用知识点以及习惯。
不然出了一些迷之BUG,不但浪费你自己的时间,而且会拖延你团队的开发进度....
2、根据辅导师兄的建议修正了一些错误的地方。
3、成功的进行了SSM异常的统一处理,并配置了log4j日志
首先预测了一波不合理或者可能抛出异常的地方,在合适的地方抛出(重抛)出一个自定义异常StudentException,表示这些异常是可以被预测的;除此之外,其他的运行中异常被认为是不可预测的(比如数据库崩溃了什么的),并区别处理:
然后SpringMVC提供了一个异常处理器的接口,我创建了自己的异常处理器,并对两种异常进行区分处理:
我自定义的异常通常是一些普通操作引起的,不会造成严重后果,可以打印异常信息返回给用户;那些严重错误导致的异常,渲染的视图里就不要添加什么异常信息了,不然有可能打印出一长串的东西,而且可能会暴露数据库属性给其他人....直接404打发了就是..
这是自定义的异常类:
对了,除此之外,还要在SpringMVC.xml里面配置这句话。有了这句话,就能识别这个异常处理器了。至于原理,因为自定义的异常处理器是实现了springMVC自带的异常处理器的接口,springmvc应该可以识别并且自动装配吧。
经过测试,各种异常处理均成功,用户再也不会看见那一长串的异常信息了...
4.JsonTagLib
不知道是什么鬼,任务二我也没有用到过,照着教程做了下,倒是能成功运行:
添加的依赖包是:
5.POSTMAN工具的使用:
嗯,先下了谷歌助手,翻墙之后发现谷歌是真的好用....
postman是一款测试工具,功能还是非常强大的,甚至能把idea不能识别的一些错误都指出来:
因为我没有在外层加table标签,所以这里的td tr是无效的 虽然能正常使用,但POSTMAN的PRETTY视图里面还是给出了警告。
另外,POSTMAN是REST接口友好的,通过他自带的DELETE PUT 等方法的请求,我对REST接口有了更深一步的认知。之前一直不知道那个DELETE PUT接口是怎么实现的,后来才发现,原来真正传递的消息不是我们在地址栏里面直接看到的,而是例如:
这样子的 REST风格的过滤器其实就是识别_method的隐藏属性,然后把JSP支持的POST过滤为对应的属性罢了。(很可惜之前的BUG被我修复好了,不然我倒是想看看这鬼东西到底给我返回了什么!)
明天计划的事情:
1、进行SVN的学习
2、完成任务二的深度思考
遇到的问题:今天解决了BUG后顺风顺水的,顺利完成任务二主体内容
收获:增强了处理BUG的能力,学会了POSTMAN等工具的使用。
评论