tomcat是一种非常常见的java web应用服务器,有时候服务器可能并不是部署在本地,而是部署在远程其他的机器上,我们用eclispe该如何进行debug调试呢?

1. 在eclispe中新建web应用,名字叫webtest。里面只有一个HelloServlet。Web.xml配置如下。


修改tomcat的启动脚本startup.bat。复制startup.bat为startup-debug.bat,然后打开startup- debug.bat,找到call "%EXECUTABLE%" start %CMD_LINE_ARGS%这一行,修改为call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%,然后在上面添加三行:


set JPDA_TRANSPORT=dt_socket  set JPDA_ADDRESS=9000  set JPDA_SUSPEND=n


参数说明:


JPDA_TRANSPORT=dt_socket        :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器
JPDA_ADDRESS=9000 :调试服务器监听的端口
JPDA_SUSPEND=n : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程


3. 双击“startup-debug.bat”,用debug模式启动tomcat。在tomcat的后台可以看到tomcat已经在9000端口进行监听。


4.在eclipse中,点击菜单项“run”->“debug confiurations”,打开debug confiurations对话框,在里面双击“Remote Java Application”,在右边在Host中的输入tomcat的主机名,Port中输入端口号,也就是9000,然后点击“debug”。当然也可以 在name中自定义一个你喜欢的名字。


5. 把webtest导出为webtest.war文件,然后把webtest.war拷贝到tomcat的webapps目录下。然后在eclipse的 HelloServlet第一行打一个断点,然后打开浏览器,输入http://localhost:8080/webtest/hello,然后回车。 就会看到eclipse停在了断点上。


6. 把eclipse进入debug视图,看到红色的N行符号,标志着连接成功

使用eclipse远程调试Tomcat的方法_tomcat

注意:这种连接是standalone(单一的),一次只能连接一个,重复会报错的。现在可以开始你轻松的远程debug了。

可能出现的连接问题:

Failed to connect to remote VM. Connection refused.

Connection refused: connect。

使用eclipse远程调试Tomcat的方法_java_02

出现如图所示的情况可能是已经建立了一个连接了。

解决方法:去debug透视图中使用eclipse远程调试Tomcat的方法_web应用_03

找到点击使用eclipse远程调试Tomcat的方法_java_04断开链接,就可以解决问题了。


怀有希望!!