標籤:source 程式 控制台 方式 應用服務 tom run agent 支援
我們用 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)啟動了調試服務後,嚴重影響功能,通過滑鼠點擊就能感覺到,所以正式系統上完事後趕緊關了該功能。
Eclipse 遠端偵錯 WebSphere Application Server (WAS)