在單擊 Finish 之后,portlet 就被部署到 Workplace Collaboration Services 服務器中,并且瀏覽器也被調用?梢詫Ш降 PortletPreview 頁面來查看 portlet。(因為 Workplace Collaboration Service 運行在調試模式下,所以它顯然比平常慢很多)。
提示:如果編輯在 Portal 選項卡下創建的服務器配置,并將 Label Ordinal 字段設置為零,那么 PortletPreview 頁面將是您打開的第一個頁面。
如果一切順利,那么您應該看到錯誤消息:“This portlet is unavailable. If the problem persists, please contact the portal administrator”。參見圖 8。
圖 8. MeasureConverterPortlet 錯誤
調試應用程序
顯然,我們所討論的 portlet 中有一個錯誤,我們必須調試該錯誤。打開 MeasureConverterPortlet 項目中的 MeasureConverterPortletView.jsp 文件,切換到 Source 選項卡,并在第 8 行中插入一個斷點:
PortletSession pSession = portletRequest.getPortletSession();
為了調試問題,首先必須連接到服務器。在 Servers 視圖中,右擊服務器并從菜單中選擇 Debug。Rational Application Developer 將連接到遠程 Workplace Collaboration Services 服務器,并切換到 Debug 視圖。在瀏覽器中導航到 PortletPreview 頁面。當服務器正在呈現該頁面時,它應該能夠找到您所設置的斷點,并且控制權將傳遞給 Rational Application Developer 的 Java 調試器。使用這個調試器可以執行普通的單步執行,并進入到代碼行 —— Java 和 JavaServer Pages (JSP) —— 檢查和修改變量。
如果使用 F6 鍵來單步調試 JSP 的 Java 代碼的每一行,那么應當看到是什么導致 portlet 不可用:
String formText = sessionBean.getFormText();
String message = null ;
if( formText.length() > 0 )
{
...
}
在這個代碼片段中,getFormText() 方法返回 null,這意味著 formText.length() 將拋出一個 Null Pointer 異!,F在我們完成了對此錯誤的調試,然后可以通過再次右擊 Servers 視圖中的服務器并選擇 Disconnect 來斷開與遠程服務器的連接。
為了解決導致異常的問題,請打開 MeasureConverterPortletSessionBean.java(可能需要切換回 J2EE 或 Web 視圖來打開此文件)并將下列代碼行:
private String formText = null ; 更改為:
private String formText = "" ; 保存更改,并通過右擊 portletand 并選擇 Run - Run On Server 來再次運行 portletand。在這里,portlet 應當能正確顯示,但還有一個故障需要修復。如果輸入 10 km 作為輸入,它會被錯誤地標志為無效輸入。
再次通過在 Servers 視圖中的服務器的上下文菜單中選擇 Debug 連接到服務器。如果仍然保留著先前的斷點設置,那么會在同樣的位置中斷。如果沒有中斷,需要像先前一樣再次設置斷點。
再次分步調試 JSP 的 Java 代碼,我們將看到輸入被正確的檢索為 10 km。進一步觀察還可以發現, MeasureConverterDelegate 類正確地執行了轉換,將 10 km 轉換為 6.2 英里。
文章來源于領測軟件測試網 http://www.kjueaiud.com/