星空网 > 软件开发 > Java

源码调试tomcat

1.直接通过github搜索tomcat,正好找到一位有部分翻译内容的版本,直接fork并下载

git clone https://github.com/codefollower/Tomcat-Research.git

2.转换成eclipse项目工程,如果没有安装maven,可以先配置maven环境变量

sudo mvn eclipse:eclipse 

3.在eclipse中导入
File->Import->General->Existing Projects into Workspace

4.导入后的效果如图所示

源码调试tomcat

5.Eclipse中右击start-tomcat.launch这个文件,点Run As启动Tomcat,点Debug As可以调试Tomcat

源码调试tomcat

6.效果如图所示

源码调试tomcat

7.启动后通过地址http://127.0.0.1:8080/访问

源码调试tomcat

8.这时候通过上文的类似Manager App打开无法访问(http://www.cnblogs.com/lixiaojiao-hit/p/5095180.html)

9.直接webapp目录下的manager host-manager docs目录放到launch/webapps目录下

源码调试tomcat

10.并按照上文中的配置进行修改,在tomcat-users.

源码调试tomcat

   <role rolename="tomcat" />  <role rolename="role1" />  <user username="tomcat" password="tomcat"    roles="tomcat,admin,manager,manager-gui,manager-script,manager-jax,manager-status,admin-gui" />  <user username="both" password="tomcat" roles="tomcat,role1" />  <user username="role1" password="tomcat" roles="role1" />

11.这时候访问查看manager app页面就可以访问了

源码调试tomcat

12.随便点击按钮,调试一下源码,比如stop应用,审查一下源代码

源码调试tomcat

13.发现访问路径为/manager/html/stop?path=/docs&org.apache.catalina.filters.CSRF_NONCE=95AC2B2A81FB328CA52AF996C7F02EB4

14.查看下后台日志,切换到apache-tomcat-8.0.30/logs目录下看下日志,tail -f 10000 localhost_access_log.2016-01-03.txt

源码调试tomcat

15.那么找到web.

<servlet>  <servlet-name>Manager</servlet-name>  <servlet-class>org.apache.catalina.manager.ManagerServlet</servlet-class>  <init-param>   <param-name>debug</param-name>   <param-value>2</param-value>  </init-param> </servlet>

16.发现相关servlet为ManagerServlet,打开ManagerServlet.java文件后发现相关代码

源码调试tomcat

17.找到stop代码,直接停止到相对应的context也就是web应用

 1 protected void stop(PrintWriter writer, ContextName cn, 2       StringManager smClient) { 3  4     if (debug >= 1) 5       log("stop: Stopping web application '" + cn + "'"); 6  7     if (!validateContextName(cn, writer, smClient)) { 8       return; 9     }10 11     String displayPath = cn.getDisplayName();12 13     try {14       Context context = (Context) host.findChild(cn.getName());15       if (context == null) {16         writer.println(smClient.getString("managerServlet.noContext",17             RequestUtil.filter(displayPath)));18         return;19       }20       // It isn't possible for the manager to stop itself21       if (context.getName().equals(this.context.getName())) {22         writer.println(smClient.getString("managerServlet.noSelf"));23         return;24       }25       context.stop();26       writer.println(smClient.getString(27           "managerServlet.stopped", displayPath));28     } catch (Throwable t) {29       ExceptionUtils.handleThrowable(t);30       log("ManagerServlet.stop[" + displayPath + "]", t);31       writer.println(smClient.getString("managerServlet.exception",32           t.toString()));33     }34 35   }

 




原标题:源码调试tomcat

关键词:tomcat

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

广东寄越南快递:https://www.goluckyvip.com/tag/105596.html
中国能往越南寄快递吗:https://www.goluckyvip.com/tag/105597.html
中国怎么寄东西到越南:https://www.goluckyvip.com/tag/105598.html
深圳到越南快递:https://www.goluckyvip.com/tag/105599.html
年后创业单干:https://www.goluckyvip.com/tag/1056.html
美国加征关税:https://www.goluckyvip.com/tag/10560.html
TikTok 将推出先买后付服务 :https://www.goluckyvip.com/news/188219.html
深圳有没有比较好玩的景点 深圳有没有比较好玩的景点推荐一下:https://www.vstour.cn/a/366175.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流