今天剛開始學習GWT,照著其官方網(wǎng)站上的教程寫例子做實驗。當進行到Debugging一節(jié)的時候,發(fā)現(xiàn)設置的斷點總是不能起作用。
在google上搜索,發(fā)現(xiàn)有人說使用SDM(Super Dev Mode)時,需要用SDBG插件才能進行調(diào)試。但是GWT官方文檔沒有說呢!在google繼續(xù)搜時,看到GWT官網(wǎng)上的一篇介紹Super Dev Mode的文章,里面說:“Super Dev Mode就跟生產(chǎn)模式類似,把整個GWT應用都編譯成了JavaScript。這就意味著不能象經(jīng)典Dev Mode那樣使用普通的Java調(diào)試器,而是需要使用瀏覽器的調(diào)試器。”原文如下:
Super Dev Mode compiles entire GWT applications to JavaScript, similar to production mode. This means we can’t use a normal Java debugger like in classic Dev Mode. Instead, we will use the browser’s debugger. (I recommend using Chrome for now.)
也就是說,我們需要在瀏覽器中來調(diào)試Java代碼。調(diào)試過程簡要說明如下。
- 環(huán)境。我用的是GWT2.8,Chrome 55。
-
在Eclipse中以SDM模式啟動GWT應用,如下:
從Eclipse的主控臺中可看到Code Server已經(jīng)啟動:
- 在chrome中訪問GWT應用,http://127.0.0.1:8888/StockWatcher.html
-
在chrome中打開開發(fā)工具,在其設置中查看source map是否已經(jīng)打開,如下:
-
從sources中可以看到Java代碼文件:
-
可以設置斷點、單步執(zhí)行等,還可以查看變量的值:
那篇介紹Super Dev Mode的文章還介紹了Without Dev Mode的情況,比如GWT應用是單獨運行的一個服務,應該如何調(diào)試。簡單說就是:
- 重新編譯GWT應用,并把它運行起來;
- 運行SDM的code server,如何運行看其幫助;
- 瀏覽器中訪問code server輸出的url(一般是http://localhost:9876/ ),按其頁面提示操作即可。




