![使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試 We_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/d202b988-7b23-4460-9495-4423b6cdbb59/d202b988-7b23-4460-9495-4423b6cdbb591.gif)
![使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試 We_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/d202b988-7b23-4460-9495-4423b6cdbb59/d202b988-7b23-4460-9495-4423b6cdbb592.gif)
![使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試 We_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/d202b988-7b23-4460-9495-4423b6cdbb59/d202b988-7b23-4460-9495-4423b6cdbb593.gif)
![使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試 We_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/d202b988-7b23-4460-9495-4423b6cdbb59/d202b988-7b23-4460-9495-4423b6cdbb594.gif)
![使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試 We_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/d202b988-7b23-4460-9495-4423b6cdbb59/d202b988-7b23-4460-9495-4423b6cdbb595.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、介紹2001 年,IBM 為開放源代碼社區(qū)引入了 Eclipse 平臺,以努力使其產(chǎn)品的工具對第三方產(chǎn)品更加開放,同時也努力對平臺進(jìn)行總體上的加強(qiáng)。作為這個戰(zhàn)略的一部分,IBM 現(xiàn)在提供了一套新工具,用來構(gòu)建基于 Eclipse 平臺的企業(yè) Java 應(yīng)用程序。這套新工具稱為 WebSphereStudio Application Developer,它集成了一個基于 Java 的調(diào)試器來作為它自己的調(diào)試器。這給我們帶來了很大的好處,因?yàn)槲覀儾槐卦偈褂脙蓚€調(diào)試器。VisualAgeforJava 由一個在 VisualAge for Java 內(nèi)進(jìn)行調(diào)試的內(nèi)部調(diào)試器和一個用于調(diào)試遠(yuǎn)程服務(wù)器的
2、IBM 遠(yuǎn)程調(diào)試器(IBM Remote Debugger)組成?,F(xiàn)在我們可以使用一個調(diào)試器,它可以滿足您的全部需要,并且具有 IBM 一貫提供的豐富的功能。我們打算在兩篇文章中向您介紹這個調(diào)試器。我們假設(shè)讀者熟練掌握了 J2EE、WebSphere Studio Application Developer 開發(fā)和部署的基礎(chǔ)知識。在這篇文章中,我們通過在 WebSphere Studio Application Developer 內(nèi)使用 EJB、Servlet 和 JSPs,向您介紹如何使用這個調(diào)試器及其某些基本集成功能來調(diào)試 Java 應(yīng)用程序。我們將采取一種實(shí)際操作的辦法介紹一個簡單的
3、Web 應(yīng)用程序,這個應(yīng)用程序存在幾個相互嵌套的問題(一個問題在 JSP 代碼中,一個問題在 Servlet 代碼中,還有一個問題在 EJB 代碼中),我們將使用這個調(diào)試器發(fā)現(xiàn)和修正全部三個問題。在 第 2 部分中,我們將說明,把應(yīng)用程序部署到 WebSphere Application Server,高級版(Advanced Edition(AE)之后,如何使用 WebSphere Studio Application Developer 來調(diào)試它。下面的可下載文件, DebugInWSADpt1.zip ,包含有本文所描述的類和歸檔。調(diào)試一個簡單的 Java 應(yīng)用程序在調(diào)試器中啟動您的應(yīng)用
4、程序1. 切換到(或打開)一個 Java 透視圖。2. 創(chuàng)建一個新的 Java 工程并將之稱為 TestDebug。3. 將樣本 Java 應(yīng)用程序 testdebug.jar 文件導(dǎo)入到 TestDebug 工程。4. 請檢查 poc.debug.app.AppDebug.java 。它是一個簡單的應(yīng)用程序,我們將用它來演示調(diào)試器的基礎(chǔ)知識。5. 插入一個斷點(diǎn)到 main 方法中的循環(huán)內(nèi)的以下語句: x = y + z; 要這樣做,您可以雙擊源代碼的左窗格,或使用彈出菜單,如下面的圖 1 所示。6. 圖 1. 向源代碼添加斷點(diǎn)7. 在工具欄中,單擊 Debug( )按鈕。您將看到一個對話框,
5、詢問您想使用哪一個啟動程序。選擇 Java Application,選中 Set as default launcher.復(fù)選框,然后單擊 Next。 運(yùn)行應(yīng)用程序的另一個按鈕是 Run( )按鈕。這個按鈕在非調(diào)試 Java JVM 中運(yùn)行應(yīng)用程序,這種 JVM 的執(zhí)行速度更快,但不允許調(diào)試或使用斷點(diǎn)。這是 WebSphere Studio ApplicationDeveloper 和 VisualAge for Java 之間的根本不同之處,VisualAge for Java 在它自己的 JVM 中運(yùn)行所有應(yīng)用程序,并且總是在調(diào)試模式中。而 WebSphere Studio Applica
6、tion Developer 則使用可插式 JVM,并且您可以選擇是否要在調(diào)試模式中運(yùn)行。8. 選擇您想測試的類。WebSphere Studio Application Developer 給您一個選項,讓您選擇要用應(yīng)用程序啟動程序(Application Launcher)啟動的、在同一個工程中的一組類。9. 這個啟動程序?qū)恿硪粋€ JVM 進(jìn)程來運(yùn)行您的應(yīng)用程序(看一下 Windows Task Manager ,其中將顯示一個額外的 javaw 進(jìn)程,并且將出現(xiàn)一個帶 AppDebug.java 源代碼的 Debug 視圖。)現(xiàn)在讓我們停下來,快速看一下我們在調(diào)試模式中可以使用的不同
7、視圖和功能。調(diào)試器透視圖和調(diào)試器任務(wù)Debug/Process/Navigator 視圖Debug 視圖顯示當(dāng)前線程、先前終止的線程、執(zhí)行堆棧和停止時所在的當(dāng)前斷點(diǎn)。請注意,正是這個 debug 視圖帶有這些熟悉的按鈕: Step、 Step into、 Step out、 Run、 Suspend和其它調(diào)試控制按鈕。單擊 Process 窗格將向您顯示當(dāng)前進(jìn)程,系統(tǒng)正在用來運(yùn)行這個應(yīng)用程序的可執(zhí)行文件(在我們的案例中是 javaw )。Navigator 窗格只是一個瀏覽器,它允許您全面瀏覽代碼,而且不用離開調(diào)試透視圖就可以再多設(shè)置些斷點(diǎn)。圖 2. Debug/Process/Navigat
8、or 視圖Breakpoint/Inspector/Variables/Inspector 視圖這個視圖的缺省窗格是 Breakpoints 視圖,您將在其中看到程序中可用斷點(diǎn)的列表。您也可以在一個斷點(diǎn)上單擊鼠標(biāo)右鍵并從彈出菜單中選擇 HitCount,它告訴調(diào)試器在一定數(shù)量的命中后停止。如果你想讓循環(huán)停止于某次迭代,在這樣的循環(huán)內(nèi)設(shè)置斷點(diǎn),這很有用。把您的斷點(diǎn)的 HitCount設(shè)置為 2。如果您在 Variable 窗格上單擊,那么您將有機(jī)會看見可用的變量以及它們的值。在任何變量上單擊鼠標(biāo)右鍵,您都將得到以下選項:· Inspect- variables 視圖可能包含許多變量。i
9、nspector 視圖允許您集中在感興趣的少量變量上。· Change Value- 這是一個非常重要的功能。當(dāng)您選擇這個選項時,您將可以改變所選定的變量的值,并可以研究這一改變對程序執(zhí)行的影響。· Show Type Names- 這個選項顯示變量的類型。· Show Qualified Names- 這個選項允許您看到變量類型的全限定名。圖 3. Breakpoint 視圖圖 4. Variables 視圖單擊 Run( )按鈕,您將注意到執(zhí)行將在斷點(diǎn)處停止。檢查 count 變量和其它變量的值,確認(rèn)程序執(zhí)行在循環(huán)的第二次迭代處停止。這是我們前面設(shè)置的命中計數(shù)
10、(hit count)。Code、Outline 和 Tasks/Console 視圖Code 和 outline 視圖跟您在其它透視圖中看到過的視圖是相同的。tasks 視圖也一樣,它與 Console 視圖共享同一個窗格。這個調(diào)試器的優(yōu)秀功能之一是可以運(yùn)行到代碼的某個點(diǎn)上。例如,如果我們現(xiàn)在想運(yùn)行到并停止在循環(huán)后面緊跟的語句上,則我們可以在 code 視圖中,在該語句上單擊鼠標(biāo)右鍵并選擇 Run to Line。當(dāng)您單步執(zhí)行(step-over)該語句時,程序在 console 視圖中輸出 x 的值。請注意 console 視圖如何自動變成活動的窗格。這是 console 視圖的缺省行為,
11、每次您輸出一些內(nèi)容時,console 視圖都會變成活動的。您可以從 Preferences 對話框的 Debug 窗格改變這種行為和 console 視圖中的輸出格式。在運(yùn)行調(diào)試器時修改代碼(熱修改)在 VisualAge for Java 中,我們有了“熱方法編譯(hot method compiling)”功能。這意味著我們可以在調(diào)試一個方法時修改該方法內(nèi)的代碼,調(diào)試器會自動跳回到執(zhí)行塊的開頭,我們可以繼續(xù)調(diào)試而無需重新運(yùn)行應(yīng)用程序。這是一個可用于 VisualAge for Java JVM(我們稱它為“J9”類 JVM)的功能。這個功能在標(biāo)準(zhǔn) JVM(例如:WebSphere Stud
12、io Application Developer 附帶的 JVM)中是沒有的。這個新工具確實(shí)慮及了在您修改 WebSphere Application Server 中的 Servlet 后重新裝入它。這保證了這個 Servlet 方法的第二次執(zhí)行將反映您的最新修改。Servlet/JSP 的調(diào)試要演示編譯器調(diào)試 Servlet/JSP 的功能,請將 TestEAR.ear 文件裝入到名為 TestEAR的工程。如果您遇到了任何編譯錯誤,請確保剛剛創(chuàng)建的 AdderEJB 工程在 AdderWEB 工程的類路徑中。理解 Adder 企業(yè)應(yīng)用程序我們構(gòu)建了一個名為 poc.debug.ejbs.
13、AdderSession 的會話 EJB,它提供 strCat 方法,這個方法使用內(nèi)存緩沖區(qū)(在 Java 中將字符串連接起來的快速的、推薦的辦法)將兩個字符串連接起來。我們還有一個圍繞我們的會話 bean 的訪問 bean - poc.debug.ejbs.AdderSessionAccessBean 。我們使用 WebSphere Studio Application Developer 構(gòu)建訪問這個訪問 bean 的 Web,它生成如下內(nèi)容:· poc.debug.Servlet.AdderController - 一個 Servlet,它將表單的輸入導(dǎo)到輸出 JSP。
14、3; poc.debug.Servlet.AdderViewBean - 這個 bean 封裝調(diào)用訪問 Bean 的 strCat 的邏輯,然后將結(jié)果傳回到調(diào)用者。· AdderInputForm.html - 這是一張輸入表單,它接受用戶輸入并調(diào)用 AdderController Servlet。· AdderResults.jsp - 這是 JSP 結(jié)果頁,它使用 AdderViewBean 顯示結(jié)果。配置運(yùn)行應(yīng)用程序1. 創(chuàng)建 WebSphere 4.0 測試實(shí)例配置(Test Instance/Configuration)并命名為 TU(測試單元(Test Unit
15、)。2. 在 TU 的 Configuration 中,單擊鼠標(biāo)右鍵并將 TestEAREAR 添加到配置中。3. 從 Servers 視圖選擇 TU服務(wù)器并單擊 Run( )按鈕。4. 在您的 Web 瀏覽器中,輸入: http:/localhost:8080/Adder/5. 這應(yīng)自動裝入 AdderInputForm.html ,因?yàn)樗慌渲脼橐粋€歡迎頁面。6. 在輸入表單中,輸入任意兩個字符串,單擊 Submit并注意結(jié)果。7. 您應(yīng)得到 404 error file not found AddResultX。停止服務(wù)器,讓我們找出如何使用這個調(diào)試器來定位這個問題。調(diào)試 Servlet
16、1. 在 Java 或 Web 透視圖中,打開 AdderWeb 工程并定位到 AdderController.performTask() 方法。2. 在 try 塊的第一行: performServices(request, response); ,設(shè)置一個斷點(diǎn)。3. 現(xiàn)在再次啟動服務(wù)器,但這次請單擊 Debug( )按鈕,這樣服務(wù)器將以調(diào)試模式啟動,并啟用了斷點(diǎn)。4. 將 AdderInputForm.html 重新裝入到 Web 瀏覽器。5. 在輸入表單的兩個域中輸入任意兩個字符串并單擊 Submit。6. 您會注意到 Server 透視圖變成活動的了,您將可以在其中進(jìn)行調(diào)試。 在 se
17、rver 透視圖中,您將注意到的第一件事是,Debug、Console 和 Variables 窗格共享同一個窗口!由于在您單步遍歷執(zhí)行(step through)代碼的過程中,每當(dāng)需要檢查變量值時都要切換窗口,所以這可能不太方便。這個問題的解決辦法是,或者自己重新安排這些 server 視圖,或者在 Debug 視圖中進(jìn)行調(diào)試,Debug 視圖更適合于這個過程。在 Debugger 透視圖中進(jìn)行調(diào)試有兩種方式。第一種容易的方式是在命中代碼中的斷點(diǎn)之前手工切換到 debugger 透視圖。這并非總是容易的。比如說,您在 HttpServlet.init() 方法(被設(shè)置為在啟動時自動裝入)中設(shè)
18、置了一個斷點(diǎn)。所以,現(xiàn)在我們將向您展示如何在 Debug 透視圖中調(diào)試服務(wù)器,即使您在該服務(wù)器或任何其它透視圖中獲取了斷點(diǎn)。7. 切換到 Debug 透視圖8. 在 Debug 視圖中,首先定位到 Server 進(jìn)程,如下面的圖 5 所示。9. 圖 5. Debug 進(jìn)程視圖10. 在運(yùn)行在 server 之下的線程的列表中,定位到列表底端附近的線程,也就是緊靠著底端的 Suspended (breakpoint .,如下面的圖 6 所示。如上面的圖 5 所示,由于有 +號緊靠著它,定位這個線程顯然很容易。如果展開這個線程,您將看到執(zhí)行堆棧。11. 圖 6. debug 視圖中的暫掛進(jìn)程12.
19、 雙擊該堆棧的頂部,您將在 Debug 透視圖中看到源代碼。13. 單步遍歷執(zhí)行您的 Servlet 代碼。您將看到,我們將變量 nextPage 的值手工設(shè)置為 AddResultX 。我們應(yīng)使用 getInitParameters() 方法取代它。14. 將代碼中的如下一行注釋掉: nextPage = "AddResultx"15. 取消對下面這一行(這一行包含正確的代碼)的注釋: /nextPage =getInitParameter(request.getParameter("command");16. 保存 Servlet。 前面已經(jīng)提到過,
20、WebSphere Application Server 4.0 能夠自動重新裝入 Servlet 和 JSP,所以,您不必在每次更改 Servlet 或 JSP 時都重新啟動服務(wù)器。17. 考慮到實(shí)際操作問題,由于我們將不再需要 Servlet 中的斷點(diǎn),如果您將它除去禁用,事情將變得更加容易。18. 將輸入屏重新裝入到 Web 瀏覽器。輸入一些值并單擊 Submit。19. 這次您應(yīng)得到正確的 JSP 頁面,但打印出來的值是 null值。下一步是調(diào)試 JSP,看看我們是否有可能進(jìn)一步修正問題。調(diào)試 JSP1. 在您的 Web 透視圖或任何其它透視圖中,瀏覽到 AdderResults.js
21、p 文件并打開它。2. 在 source 窗格中單擊,觀察這個 JSP 的源代碼。3. 請注意,有 Java 調(diào)用的第一行在第 48 行。它的樣子象這樣: String st1 = newjava.lang.String(request.getParameter("str21");4. 在此行的下一行單擊鼠標(biāo)右鍵并選擇 Add Breakpoint。5. 將 AdderInputForm.html 重新裝入到 Web 瀏覽器。6. 在輸入表單的兩個域中輸入任意兩個字符串并單擊 Submit。7. 回到 debug 透視圖(如前一部分所述)。8. 單步跳過(step over
22、)開頭兩個語句,驗(yàn)證變量 str1 和 str2 是否保存了您輸入到 HTML 表單的值。9. 然后,在第 50 行單擊 Step-into( )按鈕。這將把您帶到 AdderView bean 的代碼中。10. 一旦您處在了 AdderView 源代碼中,您將意識到我們正在調(diào)用錯誤的方法。我們本應(yīng)該調(diào)用 AdderView.strCat() 方法,而不是 AdderView.badStrCat() 。11. 所以,現(xiàn)在您將需要回到您的 JSP 文件,編輯第 50 行并將它修改為: String method0 =AdderBean.StrCat(st1 , st2 );12. 保存 JSP。
23、切勿除去斷點(diǎn)(我們將需要它來演示客戶機(jī)調(diào)試和 EJB)。13. 重新裝入您的輸入表單。在兩個域中輸入兩個不同的值。例如:“Hello”和“World”,單擊 submit。14. 現(xiàn)在,您將注意到 null已經(jīng)消失,但我們將得到第一個字符串與它自身連接在一起形成的字符串。要修正這一錯誤,我們將需要再次調(diào)試對 EJB 的 JSP 調(diào)用。EJB 的調(diào)試我們使用 EJB 訪問 bean 來訪問負(fù)責(zé)完成字符串連接的會話 bean。試圖單步跳入(step into)對 EJB 的調(diào)用將使我們陷入一片混亂的存根和服務(wù)器所生成的代碼。在象這樣的情況下,在可能發(fā)生問題的調(diào)用中的 EJB 上設(shè)置斷點(diǎn)是常見的做法
24、。在我們的例子中是 AdderSessionBean.StrCat() 。1. 在 Java 或 J2EE 透視圖中,從 AdderEJB 工程打開 poc.debug.ejbs.AdderSessionBean.java 。2. 在 StrCat 方法的第一個執(zhí)行行添加一個斷點(diǎn)。3. 重新裝入您的輸入表單。在兩個域中輸入兩個不同的值(即“Hello”和“World”)并單擊 Submit。4. 您將首先命中 JSP 中的斷點(diǎn)。單步跳過前兩行,然后單步跳入行號 50。5. 在 AdderView.StrCat 方法中,單步跳過這個樣子的行: ret = bean.StrCat(str1,str
25、2); 請注意,在這個案例中,在應(yīng)用程序服務(wù)器(App Server)空間中運(yùn)行的 AdderView bean 實(shí)際就是我們的 EJB 的客戶機(jī),不過,在這個特定的案例中,它們共享同一個 JVM。所以,如果您在 Process 視圖查看執(zhí)行堆棧內(nèi)部,您將注意到它們是在同一個進(jìn)程上運(yùn)行。另一個客戶機(jī)(在 EJBclient.zip 中)可以用作獨(dú)立 Java 應(yīng)用程序,用來測試您的 EJB。當(dāng)您把這個客戶機(jī)添加到任何 Java 工程中時,請確保您把下列內(nèi)容添加到了工程的構(gòu)建路徑。6.o j2ee.jar *o ijvejb35.jar *o AdderEJB 工程(*)這些文件可在 <W
26、ASROOT>pluginscom.ibm.etools.websphere.runtimelib 目錄找到。當(dāng)您調(diào)試這個應(yīng)用程序時,您將注意到兩個重要事實(shí):o 存在兩個獨(dú)立的進(jìn)程。一個用于應(yīng)用程序,一個用于 EJB 服務(wù)器。o 在您的代碼的執(zhí)行過程中,WebSphere Studio Application Developer 調(diào)試器有從一個 JVM 到另一個 JVM 來回切換的強(qiáng)大能力。7. 單擊 Step-over( )按鈕,您會注意到調(diào)試器將在 EJB StrCat 方法內(nèi)的斷點(diǎn)處停止。8. 單步遍歷執(zhí)行 EJB,您將認(rèn)識到錯誤。我們只是把 str1 連接了兩次,根本沒使用 st
27、r2 。9. 修正這個問題并保存代碼。10. 您將需要重新啟動服務(wù)器以刷新 EJB 代碼。別忘了要在調(diào)試模式中啟動它。與 Servlet 和 JSP 的情況不同,當(dāng)您修改了您的 EJB 中的代碼時,WebSphere 4.0 將要求重新裝入服務(wù)器。11. 重新裝入您的輸入表單,輸入數(shù)據(jù),跟蹤您的代碼到 EJB 語句。12. 驗(yàn)證 sf 變量是否確實(shí)帶有正確的值。請注意,如果您從 EJB 單擊 Return( )按鈕,則您將運(yùn)行回到服務(wù)器生成的 EJB 類。為了避免發(fā)生這樣的事情,在堆棧中選擇 JSP 調(diào)用就行了,如下面的圖 7 所示。然后,您可以使用 Step-over( )按鈕并繼續(xù)執(zhí)行 J
28、SP 文件。13. 圖 7. 選擇了 JSP 的 Debug 進(jìn)程視圖14. 驗(yàn)證返回字符串是否帶有正確的值(您輸入的字符串的連接)?,F(xiàn)在,您成功地完成了存在問題的 Servlet、JSP 和 EJB 代碼的調(diào)試。結(jié)束語到目前為止,我們在這篇實(shí)際操作的文章中所做的是,向您展示在不同的情形下如何使用 WebSphere Studio Application Developer 開發(fā)環(huán)境調(diào)試 Java 應(yīng)用程序、Servlet、JSP 和 EJB。在下一篇文章中,我們將向您展示如何使用 WebSphere Studio Application Developer 調(diào)試器調(diào)試在 WebSphere
29、AE 的遠(yuǎn)程實(shí)例中運(yùn)行的應(yīng)用程序。在本系列的 第 1 部分中,我們介紹了新的 WebSphereStudio Application Developer 調(diào)試器以及如何在不同的測試情形下使用它。在本文中,我們將向您展示如何配置 WebSphere Studio Application Developer 來調(diào)試已經(jīng)部署到主機(jī)的 WebSphere Application Server,高級版(AE)上的應(yīng)用程序。在對部署進(jìn)行測試時,這一點(diǎn)很有用,并展示了 WebSphere Studio Application Developer 的調(diào)試器作為 遠(yuǎn)程調(diào)試器的新功能。您可以采用 Joe Winc
30、hester 所寫的文章 調(diào)試在 WebSphere Application Server 內(nèi)運(yùn)行的 Java 代碼描述的類似步驟,使用獨(dú)立的 IBM 遠(yuǎn)程調(diào)試器(IBM Remote Debugger)在 WebSphere Application Server,高級單服務(wù)器版(Advanced Single Server Edition(AEs)上調(diào)試應(yīng)用程序。我們決定在本文中不做那些工作,因?yàn)?WebSphere Studio Application Developer 支持將 AEs 用作測試服務(wù)器,而且也提供動態(tài)發(fā)布。我們假設(shè)您已經(jīng)知道如何運(yùn)行 Application Server
31、并且了解 Application Server 管理的基礎(chǔ)知識。如果您以前使用 IBM 遠(yuǎn)程調(diào)試器調(diào)試過 WebSphere Application Server AE,則您可以跳過本文的第一部分,因?yàn)樗且郧暗奈恼?,WebSphere 開發(fā)者園地上 Joe Winchester 所寫的 調(diào)試在 WebSphere Application Server 內(nèi)運(yùn)行的 Java 代碼的重復(fù)。配置 Application Server 以在調(diào)試模式中運(yùn)行在 WebSphere Application Server AE 上進(jìn)行的調(diào)試是以每個應(yīng)用程序服務(wù)器為基礎(chǔ)的。這允許您把一個特定的應(yīng)用程序服務(wù)器設(shè)置
32、成遠(yuǎn)程調(diào)試,而其它應(yīng)用程序服務(wù)器可以有不同設(shè)置。1. 從 WebSphere 管理控制臺單擊您想遠(yuǎn)程調(diào)個試的應(yīng)用程序服務(wù)器(application server)。2. 這樣做之后,該應(yīng)用程序服務(wù)器的設(shè)置將立刻出現(xiàn)在窗口的右邊較下部分,如下面的圖 1 所示。選擇 JVM settings窗格。3. 圖 1. Application server 屬性4. 從 JVM settings 窗格單擊 Advanced JVM Settings.。要實(shí)際看到這個按鈕,您得向下滾屏。5. 在如下所示的新打開的對話框中,確保您選擇了以下設(shè)置:a. Enable Debug Mode被選中。b. Enabl
33、e IBM Distributed Debugger未被選中。c. Disable JIT被選中。最新的 WebSphere Application Server 會自動禁用 JIT。使用 JIT 將啟用代碼優(yōu)化,按照定義,代碼優(yōu)化將改變行號并導(dǎo)致所有調(diào)試器失效。d. 在測試域 Debug String輸入以下字符串。請注意,“nnnn”是您所選擇的端口號。您可以查看 調(diào)試字符串意義說明部分獲得關(guān)于端口號的更多信息。-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=nnnne.f. 單擊 OK。 圖 2. Advanced JVM
34、 settings調(diào)試字符串意義說明-Xrunjdwp:transport=dt_socket這個字符串告訴調(diào)試器使用套接字作為它的傳輸機(jī)制。調(diào)試器將能夠使用開放套接字來偵聽客戶機(jī)。另一個可能的值是 dt_shmem ,如果調(diào)試器和 Application server 在同一臺機(jī)器上運(yùn)行,它就用共享內(nèi)存代替套接字傳輸。server=yJVM 作為可調(diào)試的服務(wù)器運(yùn)行,并且調(diào)試客戶機(jī)可以連接到 JVM。suspend=n當(dāng)您開始運(yùn)行時,服務(wù)器不應(yīng)暫掛。 重要信息:如果您使用 suspend=y ,則 application server 將在執(zhí)行開始時暫掛并等待,直到調(diào)試器連到該應(yīng)用程序服務(wù)器上
35、,接著您才可以從調(diào)試器恢復(fù) application server 的運(yùn)行。如果 Servlet 或 EJBs? 被配置成在服務(wù)器啟動的時候裝入,并且您想調(diào)試這些代碼,這就會變得很方便。通過將 suspend 設(shè)置為 y,您就為自己留下了在恢復(fù)服務(wù)器啟動前進(jìn)行連接調(diào)試器和設(shè)置斷點(diǎn)等操作的時間。address=nnnn請勿輸入 nnnn ,而要輸入您選擇的一個號碼。這個號碼將是一個端口號,調(diào)試器引擎將偵聽這個端口號,等待調(diào)試器接口鉤(hook)上來。一個常見的錯誤是使用 8080 或 9080 端口,這兩個端口總是處于忙狀態(tài)。在 NT 機(jī)器上,您可以發(fā)出命令 netstat -a> usedports.txt ,然后搜索 usedports.txt 文件找出哪些端口正在使用中并避開它們。您可以在您正在使用的任何平臺上使用類似的命令。在這個樣本中,我使用了 0371,這個端口在我的機(jī)器上一直是閑著的。在 Sun Java Web 站點(diǎn)上可找到更多信息。查找 Java Platform Debugger Architecture(JPDA)文檔,您將在 Connection and Invocation Details部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020五年級下冊應(yīng)用題
- 2025年個人聘請合同(三篇)
- 2025年二氧化碳?xì)怏w保護(hù)焊設(shè)備租賃合同范文(2篇)
- 2025年個人的私有土地轉(zhuǎn)讓合同(2篇)
- 2025年個人工程承包合同范例(2篇)
- 2025年個人的抵押借款合同標(biāo)準(zhǔn)版本(2篇)
- 2025年二手房購房協(xié)議參考模板(2篇)
- 2025年人離婚協(xié)議例文(4篇)
- 2025年中介租賃合同(三篇)
- 湖南咖啡廳裝修合同范本
- 肩周炎康復(fù)護(hù)理
- 2022年安徽管子文化旅游集團(tuán)有限公司招聘筆試試題及答案解析
- SAPPM設(shè)備管理解決方案
- Q-HN-1-0000.08.004《風(fēng)力發(fā)電場電能質(zhì)量監(jiān)督技術(shù)標(biāo)準(zhǔn)》
- 多指畸形-課件
- 宗教與社會課件
- 3人-機(jī)-環(huán)-管理本質(zhì)安全化措施課件
- 生殖醫(yī)學(xué)中心建設(shè)驗(yàn)收標(biāo)準(zhǔn)分析-講座課件PPT
- 慶陽煤炭資源開發(fā)調(diào)研報告
- 橋博常見問題
- 貴州省電梯日常維護(hù)保養(yǎng)合同范本
評論
0/150
提交評論