如何在生产模式下运行GWT

时间:2013-02-01 15:53:36

标签: java eclipse gwt

我正按照https://developers.google.com/web-toolkit/usingeclipse的说明尝试在生产模式下运行GWT项目。因此,我的项目foo位于foo文件夹下的桌面文件夹workspace中。当我右键单击Project Explorer中的foo项目时,单击Google - GWT Compile,我会在调试控制台中看到permutations 1, 2..等消息,之后会显示编译完成了。

但是,与Google页面所说的相反,HTML文件夹中不会生成其他Javascript / war个文件。另外,如果我在网址栏中输入foo/war/foo.html,我会收到超时错误(即使该网页只包含一个简单的alert电话)。

谁能告诉我这里发生了什么?

3 个答案:

答案 0 :(得分:8)

如果您在编译后运行GWT开发模式

删除eclipse

给出的网址中的参数gwt.codesvr=127.0.0.1:9997

编译代码后,整个gwt代码将转换为javascript,因此您可以像正常HTML页面一样使用正确的路径进行访问。

答案 1 :(得分:1)

如果您的GWT项目是Maven项目,并且您使用gwt-maven-plugin,则可以运行mvn jetty:run-war(例如,将其用作Eclipse Maven运行配置的目标):这将是GWT将您的项目编译成战争,并在localhost上运行,从而运行您的Prod模式。

答案 2 :(得分:0)

这可以在生产模式下测试仅限ui的功能。如果您只需要这样做,那将非常有用,尤其是否则为生产模式运行服务器会占用开发机器的有限资源你想保存(如果你的测试不需要向该服务器发出请求,那么使用正在运行的服务器占用它们将是一种“浪费”。)

如果您的GWT项目......

  1. 尚未对数据提出任何服务器请求(也许您的项目仍然处于初期阶段),并且......
  2. 是Maven项目
  3. ......你可以......

    1. GWT编译您的项目
    2. Maven package(这些说明使用gwt-Eclipse-maven-plugin)您的项目
    3. 在浏览器中打开打包的GWT主页(即:index.html,或< Your Module> .html,在您的Project / target / yourProject-< snapshot version> /下)。利润!
    4. 这足以测试项目的ui-only功能,因此在生产模式下。实际上,如果您的项目具有使服务器请求数据的功能,但您没有测试任何数据,那么这仍然只能测试那些仅限ui的功能。基本上,任何请求服务器数据的功能都不会返回那些请求(因为没有服务器正在运行),但所有其他功能都将起作用,因为它们只是ui-only。

      如果您需要测试服务器请求数据的功能,那么您必须通过服务器运行生产模式(这将响应请求)。例如,使用Jetty服务器,请在此处查看我的other Answer