我們用 Eclipse 開發 Web 項目時,多會用某個插件(如 MyEclipse) 來對 Tomcat 中的應用進行單步調試。而要調試
WAS 下的應用,MyEclipse 也是可以的,但在 MyEclipse 中啟動 WAS 比較慢,且需要在本地安裝一個
WAS。再有便捷點的方法是用 WSAD (Websphere Studio Application Developer) 或它的升級版 RAD
(Rational Application Developer),它們內置了對 WAS 很好的支持,不過也需要本機安裝了
WAS,WSAD/RAD 肥大的身軀自是不必說。若要讓 WSAD/RAD 進行遠程調試,似乎還得在Server 上安裝個 IBM Agent
Controller。
實際上 WAS 就支持遠程調試的設置,打開它,你只需要用 Eclipse Debug 中的 Remote
Java Application 功能連接到服務器上相應端口即行。設置很簡單,這樣的辦法你甚至可以在閑時偷偷的調試一下生產環境的 WAS
應用以驗證測試環境難以/無法重現的問題。具體做法如下(WAS 5.x 和 6.x 下的操作基本相同):
一:配置 WAS,打開調試服務
進到 WAS(或ND) 的管理控制臺,在服務器->應用程序服務器中,點擊要啟用調試服務的應用服務器,然后進入調試服務,勾選上啟動(指定當服務器啟動時服務器是否將嘗試啟動指定的服務。)。JVM 調試端口默認為 7777,注意該端口不能有沖突(如有多個應服務器要啟用調試服務時,需要指定別的端口)。其他選項默認,或根據實際來設定。
確定、保存后重啟應用服務器,WAS Base 版需要回到操作系統下重啟,如果是在 ND 管理控制臺下,可直接在頁面中重啟應用服務器。
二:配置 Eclipse,使用遠程調試
Eclipse 的菜單 Run -> Open Debug Dialog 窗口中,右擊 Remote Java Application->New,在右方的 Conect 標簽頁中,選擇你要調試的 Project(即發布到 WAS 下啟用了調試服務的,在你的 Eclipse 中存在的項目),Host 填上 WAS 服務器的 IP,Port 就是前面的 JVM 調試端口。其他兩個標簽頁 Source/Common 可留意下。
點擊 Debug 按鈕,這時候 Eclipse 即處理于偵聽 WAS 服務器的 JVM 調試端口的狀態。
三:打上斷點,調試應用
在
你的 Eclipse 中的項目(注意,該項目已部署到 WAS 上的) 要調試的代碼行中打上斷點,然后可以在網頁上瀏覽 WAS
上的該應用。當執行到所在斷點的代碼行時,Eclipse 就會停在該行上,讓你盡情的 F5/F6 的跳,像平時那樣
Watch/Inspect/Display表達式或變量。
其他缺點就是:
1)觀察不到控制臺的輸出,還得看 WAS 的 SystemOut.log 文件或日志文件。
2)JSP 文件無法調試,因為定位不到原碼,并且這種方式也不足以聰明。
3)代碼更新后,需手工把類文件或 JSP 文件拷到 WAS 的相應目錄下。
4)啟動了調試服務后,嚴重影響功能,通過鼠標點擊就能感覺到,所以正式系統上完事后趕緊關了該功能。