java如何在生产模式下运行GWT
我正试图按照https://developers.google.com/web-toolkit/usingeclipse上的说明,以生产模式运行GWT项目。因此,我的项目foo
作为文件夹foo
位于我的桌面上的workspace
文件夹下。当我在项目浏览器中右键单击foo
项目,单击Google
-GWT Compile
,我在调试控制台中看到一些类似permutations 1, 2..
等的消息,之后它会说编译完成了
然而,与谷歌页面所说的相反,在war
文件夹中不会生成额外的HTML
/Javascript
文件。此外,如果我在URL栏中输入foo/war/foo.html
,我会得到一个超时错误(即使页面只包含一个简单的alert
调用)
有人能告诉我这是怎么回事吗
# 1 楼答案
如果在编译后以GWT开发模式运行
删除eclipse提供的url中的参数
gwt.codesvr=127.0.0.1:9997
编译代码后,整个gwt代码将转换为
javascript
,这样您就可以像正常的HTML
页面一样使用正确的路径进行访问# 2 楼答案
这可以在生产模式下测试仅限ui的功能如果这就是您需要做的全部工作,那么这很有用,尤其是如果以生产模式运行服务器占用了您希望保存的开发机器的有限资源(而如果您的测试不需要向该服务器发出任何请求,则用运行中的服务器占用这些资源将是一种“浪费”)
如果你的GWT项目
。。。你可以
这足以在生产模式下测试项目的仅ui功能。事实上,如果您的项目中有一些功能可以向服务器请求数据,但您没有测试其中任何一个,那么这仍然可以测试那些仅限于ui的功能。基本上,任何请求服务器数据的功能都不会返回这些请求(因为没有运行服务器来返回这些请求),但所有其他功能都会正常工作,因为它们只是ui
如果您需要测试发出服务器数据请求的功能,那么您必须通过服务器运行生产模式(这将响应请求)。例如,对于Jetty server,请参见我的other Answer
# 3 楼答案
如果您的GWT项目是一个Maven项目,并且您正在使用gwt-maven-plugin,那么您可以运行mvn jetty:run-war(例如,将其作为Eclipse Maven运行配置的目标):这将使GWT将您的项目编译为war,并在localhost上运行它,从而运行Prod模式