2012-07-14 67 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"。 如果不是,您可以保留它。

然後,您可以在那裏部署和測試代碼,而無需更改代碼!