我正在使用Errai 4开发一个项目,并且像往常一样,我可以运行“ mvn gwt:run”,并且热重载也可以正常工作,即,我更改模型或视图并且只需要刷新浏览器即可。
现在我需要,但是在Tomcat 7上运行我的Errai应用程序。
使用Tomcat的项目类似于https://github.com/stbland/errai-tutorial-tomcat
问题是,当我仅使用mvn gwt:run
或类似的东西在前端进行更改时,如何使Tomcat 7进行热重装。
分步最终解决方案:
解决此问题的信息:
安装原始项目
在此示例中,我们将使用errai-tutorial
在Tomcat上运行
收听更改
现在您可以在网络浏览器中打开http://localhost:8080/errai-tutorial/
要进行热重装,您需要在项目中导入此类:
并以这种方式(SuperDevModeHelper.devModeOn()
)进行快捷调用,如下所示:
答案 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
书签,然后使用自定义快捷方式。我们使用这种策略,效果很好。