GWT:重新加载Web服务器不起作用

时间:2015-05-31 16:05:56

标签: java eclipse gwt

我正在运行在Eclipse中创建的默认Greeting应用程序。

public void onModuleLoad() {
    final Button sendButton = new Button("Send");
    final TextBox nameField = new TextBox();
    nameField.setText("GWT Userrrr");
    final Label errorLabel = new Label();

    // We can add style names to widgets
    sendButton.addStyleName("sendButton");

    // Add the nameField and sendButton to the RootPanel
    // Use RootPanel.get() to get the entire body element
    RootPanel.get("nameFieldContainer").add(nameField);
    RootPanel.get("sendButtonContainer").add(sendButton);
    RootPanel.get("errorLabelContainer").add(errorLabel);

    // ...
}

如果我改变某些东西,会产生一些共鸣注释掉按钮的add(),这些更改不会反映在网站上。即使我点击了重新加载网络服务器" “开发模式”视图中的按钮。如果我这样做,我就得到:

May 31, 2015 6:30:22 PM com.google.appengine.tools.development.AbstractModule shutdown
INFO: Shutting down module instance default
May 31, 2015 6:30:22 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
May 31, 2015 6:30:23 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Started SelectChannelConnector@0.0.0.0:8888
May 31, 2015 6:30:23 PM com.google.appengine.tools.development.AbstractModule startup
INFO: Module instance default is running at http://localhost:8888/
May 31, 2015 6:30:23 PM com.google.appengine.tools.development.AbstractModule startup
INFO: The admin console is running at http://localhost:8888/_ah/admin
   Reload completed successfully

但未应用更改。

唯一有帮助的是重新编译整个GWT项目,遗憾的是这种项目永远不会像我想要的那样。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

.java包中的server个文件需要编译为.class以供服务器解释。

这是由GWT编译器完成的,它很遗憾地将所有其他客户端类编译为javascript。

为了加快开发速度,您可以通过在xxx.gwt.xml文件中指定目标浏览器来减少编译器执行的排列量

<set-property name="user.agent" value="safari" />

从技术上讲,也可以在服务器端类上使用java编译器来编译它们。

引用http://www.gwtproject.org/doc/latest/DevGuideDeploying.html

  

类文件

     

webAppCreator实用程序自动生成的构建脚本   负责编译你的servlet类并将它们放在   war / WEB-INF / classes文件夹。但是,有可能是你的   当您对服务器端进行更改时,资源可能会失去同步   代码不一定会在GWT客户端发生变化   代码,因此您可能忘记运行编译器来生成新的   servlet类的.class文件。在这种情况下,你可以运行   再次构建脚本覆盖应用程序代码以生成   新的.class文件,但一个简单的javac也足够了   花费更少的时间来编译。如果RPC服务方法签名具有   但是,您需要重新编译应用程序   使用GWT编译器。

答案 1 :(得分:-1)

我不确定你是否错误认为过去是否有必要。但在我的理解中,eclipse会跟踪您是否对代码进行了任何更改,如果是这样,则创建一个新的二进制文件以反映新的代码更改,无论多小。