`
elec
  • 浏览: 75705 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

GWT module 'xxx' may need to be (re)compiled

阅读更多

在编写GWT时,如果不幸运碰到这个的话,还真有些郁闷了,反正我一开始是这样,豪无头绪。google老半天,也找不到问题,更郁闷的是很多搜出的网页还打不开。但开了这么多的页面却没有找到一个解决方案,真是杯具啊。。。

 

在被这个问题困扰了大半天后,突然灵光一现,既然是js弹出的对话框



那何不去看看gwt生产的js代码呢。于是打开生产的rome.nocache.js,一搜“GWT module 'rome' may need to be (re)compiled”,原来是一个叫Fb变量的值(first blood ??)。

 

既然Fb被alert了,那就搜一下Fb吧,结果还真搜到了“alert(Fb)”,完整代码是:if(!y()){try{alert(Fb)

 

原来是在y()函数返回false的时候弹出的。于是就去看y()的定义,又一搜,原来是这样的代码:

 

function y(){var b=false;try{var c=k.location.search;return (c.indexOf(R)!=-1||(c.indexOf(S)!=-1||k.external&&k.external.gwtOnLoad))&&c.indexOf(T)==-1}catch(a){}y=function(){return b};return b}

 

看其中的条件,有k,R,S。管他们是什么,既然你alert错误出来了,那我就alert你们吧,于是将上面都alert一下,发现k是window对象,那么k.location.search,,,不就是url的查询条件吗???莫非是我的请求中没有查询条件就不让过了,google的工程师们不会这样干吧。

 

将信将疑的,我打开一个正常的代码一试,nnd,还真是有参数的。把自己的url一看,没。。。莫非就是这个参数。于是修改了请求url(其实输入浏览器的url是有参数的,但是我在程序中有个跳转,参数没了),还真是这样。

 

真是被打败了,居然是这么一个原因。。。

 

 

不过从这个情况中还是学到了很多呀。

 

首先,在遇到困难时没有放弃。gwt在eclipse中debug问题困扰了一天多了,不断的看google文档,他人日志,却一直没有见到正解。但是我没有放弃,一直坚信自己能解决(实在太不爽了就出去走走,呼吸呼吸清新空气)

 

其次,在遇到问题时,开始有些不知所措,没有从错误的源头入手。这件事也告诉我,在遇到问题时,先分析现象,找出发生这样现象的原因,然后一步步深入下去,最终很有可能会找到答案的。这其实也是一个处理问题的方法,在遇到任何问题时,都可以从现象出发逐步深入。

 

最后,遇到技术问题,千万不要baidu,如果google不行,bing应该可以替代。但最好是有google

 

 

 

 

 

  • 大小: 16 KB
分享到:
评论
1 楼 wangying95599 2011-08-24  
gwt可以设置生成详细的js,这样具体的方法名就能看出来了。function y()这一类压缩的名字很难读懂

相关推荐

Global site tag (gtag.js) - Google Analytics