2012-12-12 46 views
5

我工作的項目非常具體。我們使用GWT和SAP後端。我們用下面的配置運行開發模式(程序參數;我運行該項目直接使用的IntelliJ IDEA)遠程服務器上的超級開發模式

-noserver -logLevel INFO -startupUrl http://server-url:8000/aaa -whitelist ^http[:][/][/]server-url[.]eu[:]8000/aaa com.company.project.main.Main 

注意,我們沒有使用一個本地服務器(-noserver)。

在熟悉超級開發模式之後,我瞭解到,它的工作原理類似於GWT Web模式,即編譯JavaScript(可以指定要編譯的文件夾),然後使用託管的腳本運行代碼服務器。

由於項目的具體情況,編譯後的JavaScript通過WebDav使用maven部署到遠程服務器。因此只需指定-workDir作爲參數將不會在遠程服務器上部署腳本。我們也不能在server-url地址上運行(至少目前是)Java服務器。

我們可以在這種情況下使用超級開發模式嗎?

回答

9

是的,你可以。

編輯2016年11月27日:我建了一個devserver可以使用-launcherDir風格SuperDevMode無需寫入服務器,通過使用的WebPack樣代理:https://github.com/tbroyer/gwt-devserver

編輯:有幾個問題。延遲綁定屬性。建議使用SDM(自GWT 2.7起)使用-launcherDir這意味着使用本地服務器。

SuperDevMode與DevMode的工作方式非常相似,其中-noserver表示您必須至少將一次應用程序部署到您的服務器。在SuperDevMode的情況下,這意味着您必須編譯並使用xsiframe鏈接器和devModeRedirectEnabled屬性設置爲true進行部署。

然後,在您的機器上運行SuperDevMode,如果還沒有創建您的書籤,請從遠程服務器加載您的應用並單擊開發模式書籤。

這將在瀏覽器的sessionStorage中存儲一些內容,以便重新加載頁面現在將加載您的計算機上運行的SuperDevMode而不是遠程服務器的排列。有關SuperDevMode如何工作

更多信息:http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

+0

但其中哪些參數我應該運行超開發模式?首先我把它指定爲'-bindAddress server-url -port 8000'?如果我這樣做,我會得到'java.net.BindException:無法分配請求的地址'和一個警告'失敗的SelectChannelConnector @ server-url:8000'。 – Vic

+2

答案是正確的,這是可能的。但是,我必須使用'-bindAddress 0.0.0.0'運行SuperDevMode。然後我打開提供的鏈接'http:// victor-dell:9876',在那裏我可以拖動書籤。下一步是打開我的'http:// server-url:8000/aaa',然後點擊「Dev Mode On」小書籤。一旦我擁有這些書籤,我也可以跳過「http:// victor-dell:9876」。 – Vic

+0

如果沒有'-bindAddress',那麼你可以簡單地訪問'localhost'或'127.0.0.1'上的代碼服務器,它應該都是一樣的。 –

0

現在,我看到的只有一個可能的解決方案,這是對SAP服務器(帶有地址,也就是說,http://server-url:8000/bbb)上以某種方式運行gwt-codeserver.jar和寫一個servlet,將所有請求重定向到http://server-url:8000/aaa。但是,這不是很容易實現。 SAP服務器具有「棘手」的身份驗證機制,用戶首先看到登錄頁面,然後將其重定向到生成的會話特定的URL。

其他想法是非常受歡迎的。