GWT 之 害死人的 firefox 缓存

前几天部署了一下SmartGWT做的应用,今天有些小修改,又重新 compile 之后,

把目标目录覆盖了一下。这个时候,噩梦开始了。

 

首先,表现出来的症状就是后台抛出个异常,是 org.eclipse.jetty.util.log.StdErrLog.format

里面的NullPointerException。这个 jetty7,也没判断一下 Throwable 是不是空,当然,主要

还是 GWT的 RemoteServiceServlet 里面,它发现找不到 policyfile 的时候,log了一段话,神奇

的是,它不是调用 log(message),而是非要去调用 log( message, null),不知道为什么,难道

是要提高log的错误等级?就是因为这个 null,导致 format的时候试图format一个 null 的 exception。

 

好了,这个其实不是重点,不过它确实吸引我的注意力,害得我把gwt 从2.0.0 升级到 2.0.1,结果也

没有好转,正在我考虑是不是要把 jetty7降级到 jett6 的时候,突然想起来,为啥 gwt的 policyfile的

strongname为啥会好好的突然找不到了呢?

 

开发期一直没有问题,因为用的是development模式。上一次部署之后也没问题,而且我只是做了一个

小改动,按说也不会有大问题。就算是重新compile,它也应该能认识到新的 strongname啊。那么,唯一

的解释就是某个地方有缓存。开始逐个排除,eclipse没有,jetty也没有,真相只有一个,凶手就是 Firefox !

 

由于FireFox的缓存,它保留了我上一次的html文件,而正是这个html文件里面有上一次自动生成的 strongname。

而用一个不存在的 strongname 去获取 policyfile,自然就会出错了。

 

因此,提醒一下自己,以后每次部署完了之后,一定要让firefox清空一下缓存。不知道gwt有没有类似的机制来

把 cache 给 expire掉,要是能加上这个特性就完美了。

 

你可能感兴趣的:(eclipse,json,浏览器,gwt,firefox)