我不知道爲什麼我從來沒有發現自己必須使用調試器才能瀏覽我的程序,看看發生了什麼,可能是因爲我習慣使用解釋型語言比如PHP,它可以非常容易地添加調試代碼(print_r
)並且可以看到更改。調試從Tomcat運行的Java程序(JSP)
但是,對於這個新的Java項目,我覺得我必須學習正確的調試方法。
所以這個程序,我沒有寫,運行在Tomcat上,並使用基本的JSP。問題是,當我試圖訪問它拋出一個異常,並給了我所發生的堆棧跟蹤一個特定的JSP頁面:
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:503)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:363)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:306)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.sgrp.singer.filters.SingerLoginFilter.doFilter(SingerLoginFilter.java:128)
我怎麼會通過我的程序中使用的工具步驟如加多寶?因爲我需要模仿我的JSP正在做什麼......我想通過命令行執行此操作,而不使用IDE,所以我無法真正完成特定的類。
是的,但有沒有像JDB進入SingerLoginFilter類並運行該函數doFilter並在該行上設置一個斷點,這樣我就可以在它被調用之前看到它正在獲取什麼值。 – 2010-11-03 13:34:34
@Luca:我沒有親自使用JDB調試Tomcat。也許這個鏈接可以幫助你:http://mo.morsi.org/blog/node/219。從那篇文章,「停止在org.sgrp.singer.filters.SingerLoginFilter:128」是你需要的。試試Google搜索「jdb tomcat」 – darioo 2010-11-03 13:38:56