`

远程调试Tomcat

阅读更多
调试分两种
1.没有远程调试环境
  这种情况下只能通过查看远程服务器上的log来调试,如果在异常信息中出现unknown source说明编译的时候没有加入行号的信息,按如下修改
  a)通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息
  b)而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出unknown source。修改ant的编译文件如下:
   
<javac destdir="${build.classes}" srcdir="${src.java}"  
classpathref="lib.classpath" encoding="utf-8"   
debug="true" debuglevel="source,lines,vars"/>  


2.有远程调试环境(即开发机可以连接服务器)

修改%TOMCAT_HOME%\bin\startup.bat最后部分的内容。
set JPDA_ADDRESS=8114
set JPDA_TRANSPORT=dt_socket
set JPDA_SUSPEND=y
call "%EXECUTABLE%" jpda start  %CMD_LINE_ARGS%
修改后另存为jpda.bat

然后在eclipse中操作如下:
Debug Configurations -> 新建Remote Java Application,取名字为"myDebug"
Project:调试的工程
Connection Type: Standard(Socket Attach)
Connection Properties:
Host:远程服务器地址
Port:8114
Allow termination of remote VM 打上勾。

ok了,在服务器端先运行jpda.bat,控制台显示如下信息,之后就处于等待状态了:
Listening for transport dt_socket at address: 8114

然后在eclipse中启动myDebug

这时候可以看到远程服务器的控制台又继续运行了。

等待远程服务启动完毕,现在试着在eclipse中的程序中打个断点,然后打开IE访问远程的应用,哈哈,是不是eclipse停在了你打的断点那里了。

恩恩,到此为止。
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics