Tomcat源码解读--代码走读之(二十六的1-2-4)HostConfig.deployApps()(二十七)
1、获取appbase,appbase为D:\workspace\test_tomcat\apache-tomcat-7.0.22-src\output\build\webapps
2、获取configBase,configbase为D:\workspace\test_tomcat\apache-tomcat-7.0.22-src\output\build\conf\Catalina\localhost,其中Catalina为配置文件server.xml中的Engine的name,localhost为Host的name。
3、过滤appbase里面的文件。filteredAppPaths为docs, examples, host-manager,manager, ROOT。4、部署xml文件从configBase里。其中deployDescriptor(cn, contextXml,file)为主要方法。
5、在appbase下部署war文件,本例中没有,所以跳过。
6、deployDirectories(appBase,filteredAppPaths),部署子文件。
(1)、过滤一些特殊的文件名,META-INF和WEB-INF
(2)、创建ContextName,构造的过程中,判断如果不等于root就在前面加上一个/,如/docs,如果为ROOT就直接name=“”,name和path一样。
(3)、serviced中是否已经包含了这个名字。
(4)、进行deployDirectory(cn, dir,files[i]),部署。