我正按照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
电话)。
谁能告诉我这里发生了什么?
答案 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项目......
......你可以......
这足以测试项目的ui-only功能,因此在生产模式下。实际上,如果您的项目具有使服务器请求数据的功能,但您没有测试任何数据,那么这仍然只能测试那些仅限ui的功能。基本上,任何请求服务器数据的功能都不会返回那些请求(因为没有服务器正在运行),但所有其他功能都将起作用,因为它们只是ui-only。
如果您需要测试服务器请求数据的功能,那么您必须通过服务器运行生产模式(这将响应请求)。例如,使用Jetty服务器,请在此处查看我的other Answer。