GWT + Eclipse:断点不起作用

时间:2017-10-26 13:40:20

标签: eclipse gwt

断点在我的环境中不起作用。

我在Eclipse中有一个GWT项目运行良好,但不是断点。 要运行我的项目,我执行Project>调试为>具有Jetty的GWT开发模式>代码编译>准备好后,然后在Firefox浏览器中打开我的页面>屏幕我

开发出现在页面上,我点击触发服务器端方法的按钮,它通过方法但不会在断点处停止

我的配置: Eclipse Mars.2发布(4.5.2) GWT SDK 2.8.2 JRE 1.8.0_144

尝试#1: 我尝试在我的gwt.html文件中添加以下标记,但没有成功:

  <add-linker name="xsiframe"/>
  <set-configuration-property name="devModeRedirectEnabled" value="true"/>

由于

3 个答案:

答案 0 :(得分:0)

让我们从GWT docu

的这句话开始
  

超级开发模式使用不同的方法替换开发模式的内部结构,在现代浏览器中效果更佳。与其前身(我将其称为经典开发模式)一样,超级开发模式允许GWT开发人员快速重新编译其代码并在浏览器中查看结果。它还允许开发人员使用调试器来检查正在运行的GWT应用程序。 然而,它的工作方式不同。

您没有指定是使用(旧)经典开发模式还是(新)超级开发模式。实际上我不知道GWT 2.8中是否有旧版本。

关于调试文档状态:

  

超级开发模式将整个GWT应用程序编译为JavaScript,类似于生产模式。 这意味着我们不能像经典开发模式那样使用普通的Java调试器。相反,我们将使用浏览器的调试器。(我建议现在使用Chrome。)

所以现在你基本上有两个选择:

  1. 使用超级模式下的浏览器调试JavaScript(!)代码
  2. 使用Eclipse结合特定版本的浏览器(我们使用FF ESR版本)调试Java代码,该版本仍然支持GWT Dev插件。如果没有该插件,您将无法调试客户端代码 * 1
  3. <强>加成: 有一个github项目说明了#B; SDBG - 用于GWT SuperDevMode和#34的Eclipse调试器,但我没有尝试过it

    <强> * 1 我对此声明并不是100%肯定,但我相信您始终可以调试gwt应用程序的服务器代码。

答案 1 :(得分:0)

我的配置GWT2.8.1,Eclipse Oxygen,SuperDevMode,带有chrome的SDBG,都是默认设置。 调试器不会因某些断点而停止,例如

    final Button sendButton = new Button("Send to Svr");
    final TextBox nameField = new TextBox();
    nameField.setText("GWT User");
    final Label errorLabel = new Label();

但断点适用于像

这样的代码
        public void onClick(ClickEvent event) {
            sendNameToServer();
        }

在onMoudleLoad之后添加GWT.debugger()后,断点起作用。但是与生产部署版本有什么关系?

答案 2 :(得分:0)

假设您熟悉SDM(SuperDevMode)和SBDG并正在使用它。

Java语句和JavaScript语句之间没有1:1的关系。因此,有时候,没有相关性,调试器在JavaScript中没有停止的行。

在这种情况下,您必须使用

answer: [empty]

代码中的

语句用于启动断点。

希望有所帮助。