3

我正在尝试按照https://developers.google.com/web-toolkit/usingeclipse中的说明在生产模式下运行 GWT 项目。所以我的项目foo位于foo我的桌面文件夹下的一个文件workspace夹中。当我foo在项目资源管理器中右键单击项目时,单击Google- GWT Compile,我在调试控制台中看到一些类似permutations 1, 2..etc 的消息,之后它说编译完成。

然而,与谷歌页面所说的相反,文件夹中没有生成额外的HTML/文件。此外,如果我在 URL 栏中输入,我会收到一个超时错误(即使该页面只包含一个简单的调用)。Javascriptwarfoo/war/foo.htmlalert

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

4

3 回答 3

9

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

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

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

于 2013-02-01T20:22:37.353 回答
1

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

于 2015-12-30T09:41:27.520 回答
0

这可以在生产模式下测试纯 ui 功能。 如果这就是您需要做的所有事情,那将很有用,特别是如果在生产模式下运行服务器会占用您想要保存的开发机器的有限资源(而用正在运行的服务器占用它们将是一种“浪费”,如果无论如何,您的测试都不需要向该服务器发出请求)。

如果您的 GWT 项目...

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

... 你可以...

  1. GWT 编译你的项目
  2. Maven 包(这些说明使用gwt-Eclipse-maven-plugin)您的项目
  3. 在浏览器中打开打包的 GWT 主机页面(即:index.html,或 <Your Module >.html,位于 yourProject/target/yourProject-<snapshot version>/ 下)。利润!

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

If you need to test features that make server requests for data, then you'll have to run Production Mode via a server (that would respond to the requests). For example with Jetty server, see my other Answer here.

于 2016-02-14T01:09:42.877 回答