感觉最近很浮躁,遇到问题,拿到错误消息就往google或者baidu扔。实际上这样解决问题的效率很低。以今天遇到的问题为例。我们的web的权限验证系统可以验证某个人是否可以访问某个action路径。我发现我的所有的访问都被拒绝了,说不能访问jndi:java:comp/env/xxx.action。
刚开始我以为是权限系统出错了,问了一圈,别人都没有这个问题。然后我以为是我的tomcat坏了。拿到网上一搜,什么相关内容都没有。折腾了几个小时,仔细看看这个问题,发现这个路径根本不是我访问的路径。这个jndi:java:comp/env貌似是一个配置文件的内容。于是我问个问题,为什么这个配置文件的key没有被替换成value呢?
于是我想到配置文件都是在context中定义的,当然也可能是在property中。于是我看了我的context文件,发现果然缺少了这个key。替换掉还是不行,到临时目录搜了一下,发现没有更新,全部删除,再试就好了。
总结一下思路:
1. 遇到问题先看错误消息,确保完全理解错误,包含stack trace;
2. 推测问题出现的原因,从小到大逐渐扩展,先确保不是自己的问题,再想是不是别人的问题;
3. 有的可能性是可以做实验的,实验验证就可以排除;
4. 有的可能性可以查资料;
5. 实在不行就搜索,搜索时要有逻辑的逐步深入,每一次搜索都要把结果收藏起来,避免再次搜索。
6. 平时要多学习项目相关的知识,不要满足于表面,要深入细节。