前面兩篇文章已經羅嗦了很多設置問題(參考:1. Eclipse 3 + Lomboz 3 + Tomcat 5 開發網站 2.Eclipse, Lomboz and Tomcat 的 Web Project 設置),其實如果前面的設置都沒問題了,調試就很簡單了,水到渠成。
在寫調試前要說明一點,編程序的同行都知道,所謂程序錯誤大致應該有兩類,編譯錯和運行錯?,F在流行的IDE幾乎都可以在編輯的時候查出大部分的編譯錯。然后給你提示。Eclipse也不例外。寫Java程序的時候,編輯框邊上那些紅點,黃點就是了。裝了Lomboz以后,JSP的編譯錯也能提示了。這類錯就談不上什么調試了,編譯都通不過。直接改過來就是了。
另一類是運行錯,這是比較麻煩的,不好找,記得在ASP時代,我們總是Response.write找錯,直到visual studio .net 2003 也不能跟蹤aspx地執行(當然code behind可以,但apsx頁面里的代碼不行),以前沒有lomboz的時候,也是out.print,真是很累人。
廢話一堆,開始講正題。(今天換了臺機,用的是final版的eclipse 3,屏幕拷貝的細節可能有點不一樣,應該不是問題)
啟動tomcat前還有一個重要的設置,為你的web project建立一個tomcat的配置文件,位置在tomcat目錄下的conf\Catalina\localhost,文件可以起任意名字,但一定要用xml的擴展名(總之要符合tomcat的規矩了)。配置文件的內容很簡單,比如我的project 叫blog,那配置文件(blog.xml)的內容就是:
< Context workDir="h:/project/blog/j2src" reloadable="true" debug="0" docBase="h:/project/blog/blog" path="/blog" / >
就一行字,你也可以把它放在server.xml里,這里沒時間講tomcat的配置了。
最后把tomcat啟動起來,點那個齒輪按鈕就可以了。
這是tomcat啟動以后的提示信息:
下面的步驟很重要,tomcat啟動以后,打開瀏覽器,輸入調適的頁面地址,比如:http://localhost:8080/test/index.jsp,我的測試網頁index是這樣的。
< html >
< jsp:useBean id="user" scope="page" class="test.User" />
< %
String template = user.get("template");
template = ((template.length()==0) ? "default":template);
% >
< head >
< meta http-eqouiv="expires" content="0" >
< link href="style/<%= template %>.css" rel="stylesheet" type="text/css" >
...
我們想看看在實際執行中,template的值到底付上了沒有,就要在他后面加一個斷點。怎么做呢?
回到eclipse,右鍵點project名,再彈出的菜單里選刷新,把整個project的文件刷新一次。這時候,magic出現了,j2src下有東西了,跟著目錄一直走到 H:\project\blog\j2src\org\apache\jsp,你就可以看到你想要的東西了。index_jsp.java, index._jsp.class。打開index_jsp.java(他就是tomcat根據你的jsp文件生成servlet,調試就靠它了),設上斷點。切回IE,刷新剛才的頁面,任務欄的eclipse在閃呀閃,切回eclipse,他已停在斷點上了。
看到template的值沒有?有必要還可以改他,想不到在jsp里也可以為所欲為。
另外那些bean的調試就比較簡單了,和一般的java文件一樣,這里就不再羅嗦了。
這里東西有點多,總結一下:
- 注意那個只有一行的配置文件(blog.xml),它是有講究的。
- 調試jsp文件前,先運行他,讓tomcat生成他的servlet,我們要調試的其實是servlet
- 記得刷新你的project,好看到那些動態生成的servlet文件,然后設斷點。