我刚刚下载了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文档明确指出要“热部署”服务器端代码,你需要做的就是从工具中重新启动服务器......不要退出它并完全重启工具......
答案 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浏览器中清除而不退出。