GWT DevMode Jetty重启不支持服务器代码更改

时间:2013-06-07 15:57:20

标签: gwt sdk gwt-dev-mode

我刚刚下载了GWT 2.5.1 SDK。我跑了:

  

./ webAppCreator -out / home / myUser / tmp / dummygwt / com.dummygwt.OhHai

它为我创建了一个GWT项目。然后我导航到/home/myUser/tmp/dummygwt/并运行:

  

ant -buildfile build.xml devmode

启动了GWT开发模式工具,然后点击Launch Default Browser,将我的“OhHai”应用程序添加到Firefox中。

然后我导航到/home/myUser/tmp/dummygwt/src/com/dummygwt/server/GreetingServiceImpl.java并打开它进行编辑。我将GreetingServiceImpl#greetServer方法的返回值更改为以“ Bonjourno,”而不是“ Hello,”开头。这样,当您输入您的名字并单击“发送”按钮时,弹出对话框将显示“Bonjourno,...”。 (我只是在玩耍,玩得很开心。)

我将更改保存到GreetingServiceImpl.java然后(在GWT开发模式工具中),导航到Jetty选项卡并单击Restart Server并收到以下警告:

  

00:14:25.446 [警告]在网络应用程序中找不到服务器类'com.google.gwt.dev.shell.jetty.JDBCUnloader',但在系统类路径中找到

     

00:14:25.446 [WARN]将类路径条目'file:/home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/gwt-dev.jar'添加到Web应用程序类路径本次会议   更多信息:文件:/home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/doc/helpInfo/webAppClassPath.html

我刷新浏览器,输入新名称并点击“发送”。 我仍然看到“你好,......”而不是“Bonjourno,......”。我做错了什么,或者这是GWT Dev Mode工具的错误?提前谢谢!

注意:如果我退出开发模式工具(并关闭浏览器上的标签页),然后重新启动开发模式,则服务器端更改执行会生效。但是GWT文档明确指出要“热部署”服务器端代码,你需要做的就是从工具中重新启动服务器......不要退出它并完全重启工具......

3 个答案:

答案 0 :(得分:4)

我很确定您在完成更改后需要重新编译GreetingServiceImpl.java(您在进行更改后没有提及这样做)。重新启动服务器不会为你神奇地重新编译所有内容(但通常是你的IDE)。

请注意,hot-deploy与“hot-compile-deploy”不同。

答案 1 :(得分:3)

当您运行GWT DevMode时,它将仅监视客户端Java类中的更改。

修改任何客户端命名空间中的任何类(src / com / dummygwt / client或src / com / dummygwt / shared),在浏览器中重新加载页面,您将看到更改。

然而,当您更改服务器端类时,必须在重新加载jetty服务器之前编译它们。

使用任何文本编辑器修改服务器端的类(即GreetingServiceImpl.java),然后在另一个终端中运行ant javac并更新GreetingServiceImpl.class,最后按下“重新启动服务器”按钮,您将看到变化。

如果在Eclipse中编辑类,则此过程要简单得多,因为默认情况下,Eclipse配置为将.java文件连续编译为.class,因此重新加载服务器就足够了。

答案 2 :(得分:0)

名称是简单的调用缓存,对于应用settigs,您需要重新加载它。 有很多方法可以重新加载,你只需要拾取一个女巫对你来说更容易。 close / open是一个,您也可以从Web浏览器中清除而不退出。