2

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

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

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

ant -buildfile build.xml 开发模式

并启动了 GWT 开发模式工具,我点击Launch Default Browser了在 Firefox 中打开了我的“OhHai”应用程序。

然后我导航到/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 [WARN] 在 Web 应用程序中找不到服务器类“com.google.gwt.dev.shell.jetty.JDBCUnloader”,但在系统类路径中找到

00:14:25.446 [警告]将类路径条目'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

我刷新了浏览器,输入了一个新名称,然后单击“发送”。我仍然看到 "Hello, ..." 而不是 "Bonjourno, ..."。我做错了什么,或者这是 GWT 开发模式工具的错误?提前致谢!

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

4

3 回答 3

4

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

请注意,热部署与“热编译部署”不同。

于 2013-06-19T21:15:56.137 回答
3

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

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

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

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

如果你在 Eclipse 中编辑你的类,这个过程会简单得多,因为默认情况下 Eclipse 被配置为不断地将 .java 文件编译为 .class,所以重新加载服务器就足够了。

于 2013-06-20T21:27:37.000 回答
0

名称是简单的调用缓存,对于应用设置,您需要重新加载它。有很多方法可以重新加载,你只需要拿起一个女巫对你来说更容易。关闭/打开是其中之一,您也可以在不退出的情况下从 Web 浏览器中进行清理。

于 2013-06-24T22:52:07.800 回答