【问题标题】:How to run GWT in production mode如何在生产模式下运行 GWT
【发布时间】:2016-02-14 09:18:52
【问题描述】:

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

但是,与 Google 页面所说的相反,war 文件夹中没有生成额外的 HTML/Javascript 文件。此外,如果我在 URL 栏中输入 foo/war/foo.html,我会收到超时错误(即使该页面仅包含一个简单的 alert 调用)。

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

【问题讨论】:

  • foo.html 应该包含一些样板代码来注入 web 应用程序的 javascript (<script src="..*.nocache.js></script>)。是吗?
  • 不知道...这是可能的。
  • 好吧,我建议您阅读 GWT 文档的基础知识。
  • 我非常了解基础知识。而且我也阅读了文档,这就是我在 URL 中指出它的原因。即使在此之后问题仍然存在,这就是我要问的原因......
  • 你能粘贴堆栈跟踪吗

标签: java eclipse gwt


【解决方案1】:

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

去掉eclipse给出的url中的参数gwt.codesvr=127.0.0.1:9997

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

【讨论】:

  • @suresh 因为 gwt 2.8.0 beta 这不起作用。弹出窗口说“可能需要编译 gwt 模块”。有什么想法吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    如果您的 GWT 项目...

    1. 尚未向服务器发出任何数据请求(也许您的项目还处于起步阶段),并且...
    2. 是一个 Maven 项目

    ...你可以...

    1. GWT 编译您的项目
    2. Maven package(那些方向使用gwt-Eclipse-maven-plugin)你的项目
    3. 在浏览器中打开打包的 GWT 主机页面(即:index.html,或 .html,位于 yourProject/target/yourProject-/ 下)。利润!

    这足以测试项目的 ui-only 功能,因此在生产模式下。实际上,如果您的项目具有向服务器发出数据请求的功能,但您没有测试其中任何一个,那么这仍然可以仅测试那些仅 ui 的功能。基本上,任何请求服务器数据的功能都不会返回这些请求(因为没有服务器运行来执行此操作),但所有其他功能都会起作用,因为它们是仅 ui 的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2020-03-19
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多