有时候遇到疑难杂症可能会需要完整的跟踪整个请求的声明流程,这样可能需要走到Tomcat的代码中,但是默认下无法调试Tomcat的代码。

一开始想着可能要下载Tomcat的源码然后通过某种方式执行才能运行到Tomcat的代码上,但是这样好麻烦,所以一直没实践过。

后来看到调试跟进 tomcat 源码这篇文章,才反应过来其实很简单,只要在代码中添加tomcat的依赖就行了:

1
2
3
4
5
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>7.0.84</version>
</dependency>

7.0.84换成你用来运行项目的tomcat的版本。然后你在Tomcat的代码中设置断点,启动服务就会到断点上了。

参考资料