为什么我的小代码更改不会在app引擎(GAE / GET)中生效? (onModuleLoad()没有发生?!)

时间:2011-08-01 15:18:30

标签: java eclipse google-app-engine gwt

我刚刚开始一个新的GAE项目,我发现自从我最后使用它以来,他们已经对SDK进行了一些修改。在my_server.java中,他们在onModuleLoad()顶部附近有一行代码,如下所示:

final Button sendButton = new Button("Send");

我改变它看起来像这样:

final Button sendButton = new Button("Send-X");

但改变不会。事实上,我添加了一个日志行:

log.log(Level.INFO, "button set");

并且也没有在控制台中显示。这让我相信我的onModuleLoad()没有发生。然而,当我运行服务器(本地)时会出现旧按钮(“发送”),当我单击它时,所有处理程序代码似乎都正确发生。

在你告诉我清除我的缓存之前,我应该告诉你我那里的愚蠢行为。

  • 我清除了浏览器缓存(尝试使用Chrome和Safari。)
  • 我重新启动了服务器。
  • 我甚至放弃了&重新启动Eclipse,只是为了确定!
  • 然后我在war/找到了一些缓存文件,所以我也摆脱了它们。
  • 这导致我现在在服务器启动时收到此消息:

    [WARN]找不到以下文件:/my_server/F257245F8761687253A53003BCDAB6A7.cache.html

所以,虽然我的 REAL 问题是:如何让我的代码更改(比如重命名按钮),看起来我有一些小问题(缓存,触发onModuleLoad) ())我首先需要帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

我知道问题的海报已经移动了,但是为了那些可能偶然发现这个问题的人...

在GWT中进行更改,使您的Java代码需要编译为JavaScript。你可以做到这两种方式之一。

1)执行完整的GWT编译。在eclipse中你可以右击项目 - > Google - > GWT编译。这将把所有的j放在你的webapp目录中。然后运行|部署您的项目并通过Web浏览器访问它

2)在GWT开发模式下运行,它将只编译动态需要的java类。它通常更容易以这种方式开发,因为此方法支持客户端断点。在eclipse中右击项目 - >运行方式|调试为 - > Web应用程序。然后一定要在GWT为您提供的URL上访问您的应用程序。该网址看起来像http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997,只要您使用此网址运行您的应用,您就可以进行Java更改,只需刷新应用的相关部分(在浏览器中)即可查看更改。