GWT 2.8的调试

今天刚开始学习GWT,照着其官方网站上的教程写例子做实验。当进行到Debugging一节的时候,发现设置的断点总是不能起作用。

在google上搜索,发现有人说使用SDM(Super Dev Mode)时,需要用SDBG插件才能进行调试。但是GWT官方文档没有说呢!在google继续搜时,看到GWT官网上的一篇介绍Super Dev Mode的文章,里面说:“Super Dev Mode就跟生产模式类似,把整个GWT应用都编译成了JavaScript。这就意味着不能象经典Dev Mode那样使用普通的Java调试器,而是需要使用浏览器的调试器。”原文如下:

Super Dev Mode compiles entire GWT applications to JavaScript, similar to production mode. This means we can’t use a normal Java debugger like in classic Dev Mode. Instead, we will use the browser’s debugger. (I recommend using Chrome for now.)

也就是说,我们需要在浏览器中来调试Java代码。调试过程简要说明如下。

  1. 环境。我用的是GWT2.8,Chrome 55。
  2. 在Eclipse中以SDM模式启动GWT应用,如下:


    GWT 2.8的调试_第1张图片

    从Eclipse的主控台中可看到Code Server已经启动:


    GWT 2.8的调试_第2张图片
  3. 在chrome中访问GWT应用,http://127.0.0.1:8888/StockWatcher.html
  4. 在chrome中打开开发工具,在其设置中查看source map是否已经打开,如下:


    GWT 2.8的调试_第3张图片
  5. 从sources中可以看到Java代码文件:


    GWT 2.8的调试_第4张图片
  6. 可以设置断点、单步执行等,还可以查看变量的值:


    GWT 2.8的调试_第5张图片

那篇介绍Super Dev Mode的文章还介绍了Without Dev Mode的情况,比如GWT应用是单独运行的一个服务,应该如何调试。简单说就是:

  1. 重新编译GWT应用,并把它运行起来;
  2. 运行SDM的code server,如何运行看其帮助;
  3. 浏览器中访问code server输出的url(一般是http://localhost:9876/ ),按其页面提示操作即可。

你可能感兴趣的:(GWT 2.8的调试)