myeclipse下對tomcat專案進行debug斷點除錯
轉自:http://www.cnblogs.com/keyi/p/6022436.html
對於eclipse或myeclipse除錯J2SE專案或小應用進行斷點除錯,大家都不陌生,只要設定斷點,debug執行就OK了。但是如果是web專案,而專案是在容器中執行的,比如tomcat,resin等,有些同學就不懂怎麼斷點除錯了,只能採取本辦法,就是採用System.out.println()的列印方式了,這很不好,而且浪費很多時間。下面總結了下myeclipse下斷點除錯web專案的方法。
準備
環境:windXP,JDK1.6,Myeclipse10.7,tomcat6.0.37
myeclipse下建立web專案servlettest,然後建立一個TestServelet.Java,由於用於測試,不對自動生成的程式碼做修改了。
對TestServlet.java設定一個斷點
看下web.xml
[html] view plain copy
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="3.0"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
- <display-name></display-name>
- <servlet>
- <description>This is the description of my J2EE component</description>
- <display-name>This is the display name of my J2EE component</display-name>
- <servlet-name>TestServlet</servlet-name>
- <servlet-class>com.fei.servlet.TestServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>TestServlet</servlet-name>
- <url-pattern>/servlet/TestServlet</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
好了準備工作完畢。
本地除錯
本地除錯就是myeclipse中設定要啟動的tomcat,並已debug mode模式啟動。這很簡單,不需要做額外工作。
1.設定tomcat
window->preferences->Myeclipse->servers->tomcat
設定啟動模式
部署專案
啟動服務
瀏覽器輸入地址:http://localhost:8080/servlettest/servlet/TestServlet
myeclipse切換到除錯檢視,這裡大家都不陌生了。
遠端除錯
遠端除錯,是相對於myeclipse來說的,就是tomcat不是myeclipse中啟動的,而是再外部自己啟動,或者tomcat在另一臺伺服器上執行,不和myeclipse同一臺電腦。在上面的本地除錯中,其實最重要的是tomcat的啟動模式設定為debug mode,所以對於遠端除錯來說也是,tomcat必須是以debug mode的模式來啟動,然後myeclipse和tomcat設定連線。
開啟tomcat的bin目錄,找到catalina.bat及startup.bat複製一份,命名為catalina_debug.bat,startup_debug.bat。
開啟startup_debug.bat,在set "CURRENT_DIR=%cd%"這句話前面加上:
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
上面的除錯監聽埠8000可以更換成未被使用的埠
如圖所示:
同時將文中的catalina.bat替換成catalina_debug.bat。
開啟catalina_debug.bat,在set "CURRENT_DIR=%cd%"前加上
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1861
雙擊startup_debug.bat啟動tomcat。
myeclipse的配置。
右鍵點選專案,按下圖所示操作
檢查是否在監聽,開啟debug檢視
瀏覽器輸入地址:http://localhost:8080/servlettest/servlet/TestServlet
可以正常斷點除錯了!!