常见的中间件启动脚本中都内置了调试参数,如Tomcat的bin/catalina.sh就内置了调试参数:
但最简单直接的方式是直接在Tomcat的启动脚本catalina.sh(Windows换成catalina.bat)中添加Debug参数即可:
JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"

然后再使用catalina.sh启动Tomcat就会发现Tomcat会处于等待远程连接状态:
接下来就只需要导入Tomcat的jar并设置断点就可以调试了。
添加Tomcat的lib目录到IDEA的classpath:
展开左侧External Libraries->lib->选择需要断点的类->点击工具栏的Debug:
然后在webapps/ROOT目录下新建一个test.jsp:
<%=request.getParameter("id")%>
最后点击工具栏的Debug后控制台的Tomcat就会自动启动,知道触发断点为止,上图示例中我设置的断点是org.apache.catalina.connector.RequestFacade#getParameter,所以需要使用浏览器请求任意页面并传入参数(访问http://localhost:8080/test.jsp?id=yzmm)即可进入断点:
其实调试Tomcat最简单的方式是直接启动一个Maven Web项目并使用Tomcat启动,然后在pom.xml中配置对应版本的Tomcat的依赖就可以直接Debug了,使用这种调试方法可以让您学会如何使用IDEA调试任意的Java程序,仅此而已。
