在Tomcat上运行Errai时如何启用热重装?

时间:2019-04-09 20:57:14

标签: tomcat gwt errai errai-4

我正在使用Errai 4开发一个项目,并且像往常一样,我可以运行“ mvn gwt:run”,并且热重载也可以正常工作,即,我更改模型或视图并且只需要刷新浏览器即可。

现在我需要,但是在Tomcat 7上运行我的Errai应用程序。

使用Tomcat的项目类似于https://github.com/stbland/errai-tutorial-tomcat

问题是,当我仅使用mvn gwt:run或类似的东西在前端进行更改时,如何使Tomcat 7进行热重装。

分步最终解决方案:

解决此问题的信息:

安装原始项目

在此示例中,我们将使用errai-tutorial

在Tomcat上运行

收听更改

  • cd errai-tutorial
  • mvn gwt:compile
  • mvn gwt:run

现在您可以在网络浏览器中打开http://localhost:8080/errai-tutorial/

要进行热重装,您需要在项目中导入此类:

并以这种方式(SuperDevModeHelper.devModeOn())进行快捷调用,如下所示:

1 个答案:

答案 0 :(得分:3)

看看这个原型https://github.com/tbroyer/gwt-maven-archetypes/

模块化Web应用程序将tomcat和gwt配置为协同工作。因为gwt:codeserver会生成一个特殊的引导程序(your-app.nocache.js),该引导程序立即运行gwt编译并在完成时重新加载,因此热重新加载之所以起作用。要使其正常工作,您需要将gwt:codeserver生成的launcherDir加载到tomcat上下文中,此原型使用context.xml完成。

或者,您可以在自己的应用程序中添加一些编译触发器,以便可以使用快捷方式触发编译。这就是您触发编译(DevModeHelper)的全部。只需在应用程序入口点添加快捷方式处理程序,然后调用devModeOn()。如果您不想在最终编译中添加它,请仅在System.getProperty("superdevmode").equals("on")true的情况下安装事件监听器。在这种情况下,第一次使用经典的Dev Mode On书签,然后使用自定义快捷方式。我们使用这种策略,效果很好。