创建Server的过程
由于Server的解析过程比较复杂,接下来将划分为多个小段进行说明,同时在起始部分标注了它的类和方法。
1.创建Server实例
//Catalina.createStartDigester
digester.addObjectCreate("Server","org.apache.catalina.core.StandardServer","className");
digester.addSetProperties("Server");
digester.addSetNext("Server","setServer","org.apache.catalina.Server");
Catalina中Server的默认实现类是org.apache.catalina.core.StradardServer,但是我们可以通过属性className指定自己的实现类。Digester创建Server实例后,设置Server相关属性,并将其设置到Catalina对象中(调用setServer)。
2.创建全局J2EE企业命名上下文
//Catalina.createStartDigester
digester.addObjectCreate("Server/GlobalNamingResources","org.apache.catalina.depoly.NamingResourcesImpl");
digester.addSetProperties("Server/GlobalNamingResources");
digester.addSetNext("Server/GlobalNamingResources","setGlobalNamingResources","prg.apache.catalina.deploy.NamingResourcesImpl");
Catalina根据GlobalNamingResources配置创建全局的J2EE企业命名上下文JNDI(Java Naming and Directory Interface),设置属性并将其设置到Server实例当中(setGlobalNamingResources)。
3.为Server添加生命周期监听器
//Catalina.createStartDigester
digester.addObjectCreate("ServerListener",null,"className");
digester.addSetProperties("Server/Listener");
digester.addSetNext("Server/Listener",&