2013-02-01 92 views
2

我試圖按照https://developers.google.com/web-toolkit/usingeclipse的說明在生產模式下運行GWT項目。所以我的項目foo位於我的桌面下的文件夾下的文件夾foo。當我在項目資源管理器中右擊foo項目時,點擊Google-GWT Compile,在調試控制檯中看到一些消息,如permutations 1, 2..等,之後它說編譯完成。如何在生產模式下運行GWT

但是,與Google頁面所述相反,在war文件夾中不會生成額外的HTML/Javascript文件。此外,如果我在網址欄中輸入foo/war/foo.html,則會收到超時錯誤(即使該頁面僅包含簡單的alert調用)。

任何人都可以告訴我這裏發生了什麼?

+0

'foo.html'應該包含一些樣板代碼來注入web應用程序的javascript(''),是不是? –

+0

不知道...這是可能的 – SexyBeast

+0

嗯,我建議你閱讀關於GWT文檔的基礎知識 –

回答

8

如果您在GWT開發模式編譯

刪除參數gwt.codesvr=127.0.0.1:9997由日食

給你之後的URL編譯代碼整個GWT代碼將轉換到javascript這樣你就可以運行後像正常的HTML頁面那樣訪問正確的路徑。

+0

@suresh自gwt 2.8.0 beta這不起作用。 Popup說「gwt模塊可能需要編譯」。有任何想法嗎? – timmacp

1

如果您的GWT項目是一個Maven項目,並且您使用的是gwt-maven-plugin,那麼可以運行mvn jetty:run-war(例如,使用它作爲Eclipse Maven Run Configuration的目標):這將使GWT將您的項目編譯爲一場戰爭,並在localhost上運行它,從而運行你的Prod模式。

0

這可以測試生產模式中的僅ui功能。這很有用,如果這就是你需要做的所有事情,尤其是如果生產模式的服務器運行佔用了你想要保存的開發機器的有限資源(而使用正在運行的服務器佔用它們將是一種「浪費」如果你的測試不需要向服務器發出請求)。

如果你的GWT項目...

  1. 不會使數據的任何服務器的請求,但(也許你的項目仍處於起步階段,以及),並...
  2. 是一個Maven項目

...你可以...

  1. GWT編譯項目
  2. Maven package(這些方向使用gwt-Eclipse-maven-plugin)項目
  3. 打開包裝GWT主頁(即:index.html的,或<你的模塊>的.html,yourProject下/目標/ yourProject- <快照版本> /),在瀏覽器中。利潤!

這足以在生產模式下測試項目的ui-only功能。事實上,如果您的項目具有服務器請求數據的功能,但您沒有對其中的任何一項進行測試,那麼這仍然可以用於測試那些僅使用ui的功能。基本上,任何請求服務器數據的功能都不會返回這些請求(因爲沒有服務器正在運行),但是所有其他功能都將起作用,因爲它們都是ui專用的。

如果您需要測試使服務器請求數據的功能,那麼您將不得不通過服務器運行生產模式(這將響應請求)。例如Jetty服務器,請參閱我的other Answer

相關問題