2012-07-14 65 views
0

在我的GWT和AppEngine上的项目,我用下面的转发JSP在我ServletGWT开发插件与转发JSP

req.getRequestDispatcher("/index.jsp").forward(req, resp); 

该JSP包含了GWT编译的JavaScript基准。

问题是,即使页面加载正常,GWT Javascript也不会运行。我假设这是因为新加载的文件不包含?gwt.codesvr=127.0.0.1:9997部分,通常在GWT插件中。

有没有办法让这个工作?

编辑:根据到目前为止的答案,我想我应该提到它在Web模式下绝对正常。此外,基本URL直接映射到Servlet的在我Web.xml所以我在http://127.0.0.1:8888/,而不是提出URL访问servlet在使用的RequestDispatcher不应该更改浏览器的URL http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997

+0

仅供参考:我一直无法检查,因为我的应用程序现在因为其他原因而崩溃,但是从初始测试中看来,下面的所有解决方案实际上都有效。我选择了优雅的选择答案。 – 2012-07-15 20:29:37

回答

2

?gwt.codesvr=仅用于在客户端,由*.nocache.js文件,引发的hosted.html,而不是一些*.cache.html负荷,所以它必须存在于URL触发DevMode的,独立的什么都在做服务器端。

如果您的主机页面位于http://127.0.0.1:8888/,请使用http://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997

0

转发。如果您在浏览器URL中看到gwt.codesvr参数,那么GWT插件应该能够找到它。所以这个问题可能在别的地方。可以肯定,你可能会暂时将网址参数来转接呼叫,例如:

req.getRequestDispatcher("/index.jsp?gwt.codesvr=127.0.0.1:9997").forward(req, resp); 

如果还是不行,请确保路径*.nocache.js正确解析相对于主机页面。它在Web模式下工作吗?

+0

当我上传到AppEngine时,它工作正常...我已经尝试追加URL。这不起作用... – 2012-07-15 07:15:43

0

在你的servlet中,你为什么不检查请求是否是本地的。

String url = request.getRequestURL().toString(); 

如果URL包含http://127.0.0.1:8888或任何你正在运行它,你可以追加"/index.jsp?gwt.codesvr=127.0.0.1:9997"。 如果不是,您可以保留它。

然后,您可以在那里部署和测试代码,而无需更改代码!