常见的中间件启动脚本中都内置了调试参数,如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程序,仅此而已。