vm参数设置一:
java -XstartOnFirstThread -Xmx512M -Xdebug - Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1035 \ -Dfile.encoding=MacRoman -classpath <enter your classpath> com.google.gwt.dev.GWTShell \ -style OBFUSCATED -logLevel DEBUG -whitelist ^http.* \ http://localhost:3000/my.gwt.test/test.html
http://www.ruby-forum.com/topic/134088
vm参数设置二: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3408,suspend=y http://www.screaming-penguin.com/node/7353
-port 8888 -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl index.html -war D:\workspace-gwt\rome\web\src\main\webapp -logLevel INFO com.jim.rome.Index
==========================华丽分割线===========================
经过长时间的斗争,终于找出是什么原因了。详细情况如下:
第一、gwt使用maven构建后,目录结构需要做调整的。在gwt的标准目录下,会将client的java放到/war/下面,debug时编译器到此目录下寻找class。而maven默认的build path是target,所有需要在build path下降打包目录修改成src/main/webapp/WEB-INF/classes。(build paht这个多谢老姜提醒,否则还真不知道要搞多久呢)
第二、我按上面的设置好之后,还是不行。并且,我用gwt标准目录搞了一个去是可以的。两个的配置、build path都做了详细的对比,但实际情况是maven的还是不行。其出错是:gwt module xxx may need to (re)compiled 。莫非是class没有正确编译成js脚本。google了老半天,就是找不到原因。很多google的文章又打不开,真是叫人郁闷哪。。。
第三、gwt module xxx may need to (re)compile解决。突然一个念头蹦出来,既然是js弹出的对话框,那就可以看看是什么地方弹出来的了。于是打开xxx.nocache.js(xxx是module的名称),搜索到“Fb="GWT module 'test1' may need to be (re)compiled" ,再搜Fb,发现“if(!y()){try{alert(Fb)”。一看是!y(),那就是一个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}
中间有很多的条件,根据里面的条件判断,将每个值alert一遍,最终发现是k.location.search为空,所以这个判断失败。再看看gwt标准目录的,发现k.location.search=gwt.codesvr=127.0.0.1:9997,最后看看自己的url,原来没有了这个参数。恍然大悟啊,是url错误。。。
真是杯具,为什么google工程师们一定要在url后面加上这个参数呢。。。。
所以,最终的方案是将http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997改成http://127.0.0.1:8888/rome/index.html?gwt.codesvr=127.0.0.1:9997(因为第一个我做了一个跳转后就把参数丢了)
build path:
main方法:
server
启动参数配置:
classpath设置:
运行界面: