`
yeshaoting
  • 浏览: 685941 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[小析]tomcat源码

阅读更多


tomcat启动类Bootstrap

启动tomcat服务命令:

java -cp "%CATALINA_HOME%\bin\bootstrap.jar" org.apache.catalina.startup.Bootstrap start

Bootstrap options: start,startd,stop,stopd

注: CATALINA_HOME: tomcat安装目录


类org.apache.catalina.startup.Bootstrap用于启动tomcat

源码中此类描述:

Boostrap loader for Catalina. This application constructs a class loader for use in loading the Catalina internal classes (by accumulating all of the JAR files found in the "server" directory under "catalina.home"), and starts the regular execution of the container. The purpose of this roundabout approach is to keep the Catalina internal classes (and any other classes they depend on, such as an XML parser) out of the system class path and therefore not visible to application level classes.


其main函数描述:

Main method, used for testing only.


这只是一个引导类,真正的处理类是%CATALINA_HOME%\lib\catalina.jar类库中的org.apache.catalina.startup.Catalina类.通过直接运行org.apache.catalina.startup.Catalina start也能启动tomcat启动.


二者区别在于,Bootstrap类将相关的类库组成好了,除了bootstrap.jar外,不需要设置类路径.

而Catalina类则需要设置依赖的类路径.


----------------------------------------------------------------------------------------------

Catalina类启动服务依次调用方法main()->process()->load()->start()->

load()方法用来Load using arguments.

函数先判断%CATALINA_HOME%\conf\server.xml(Pathname to the server configuration file)的存在性,加载该配置文件;

然后,通过Service实现类(org.apache.catalina.startup.StandardService)对象实例getServer()返回一个Server实现类(org.apache.catalina.core.StandardServer)对象实例.

最后,Invoke a pre-startup initialization. This is used to allow connectors to bind to restricted ports under Unix operating environments.


相关log日志输出信息:

2011-5-14 21:12:11 org.apache.coyote.http11.Http11Protocol init

信息: Initializing Coyote HTTP/1.1 on http-8080


到此完成初始化处理:

2011-5-14 21:12:11 org.apache.catalina.startup.Catalina load

信息: Initialization processed in 1153 ms


start()方法用来Start a new server instance.

((Lifecycle) getServer()).start();

执行org.apache.catalina.core.StandardServer类中的start()方法.


----------------------------------------------------------------------------------------------

未完

分享到:
评论

相关推荐

    小析绩效审计发展态势.doc

    小析绩效审计发展态势.doc

    渗透与WEB安全小析

    渗透测试和安全测试入门相关,扫盲安全测试;安全事,无大小;也许你的一个提醒,可以挽回公司的巨大损失

    基于极小析取范式的属性约简算法 (2012年)

    ③正域等价类作为决策可辨识矩阵的行,分情况给出了新决策表求取所有决策约简集的极小析取范式属性约简方法。该方法统一解决了相容和不相容决策表所有决策约简集的求取问题,最后通过实例分析验证了算法的可行性与有效...

    滞销楼盘问题小析.doc

    在房地产行业中,滞销楼盘是一个严重的问题,往往与多种因素有关,其中户型设计不合理是导致房源滞销的主要原因之一。户型设计对于购房者来说至关重要,因为它是影响居住舒适度和生活品质的关键因素。...

    美术中的信息化应用小析(全文).docx

    【美术中的信息化应用小析】 在当今信息化时代,教育领域也开始积极探索如何将信息技术融入传统教学,以提升教学质量,激发学生兴趣。美术教育也不例外。美术课程的信息化应用旨在打破传统教学模式,利用网络资源...

    小析火力发电企业物流成本管理.doc

    【火力发电企业物流成本管理】是电力行业中一个关键的议题,尤其对于降低运营成本和提升企业竞争力至关重要。当前,火力发电企业在物流成本管理上存在一些主要问题: 1. **物流成本管理意识薄弱**:尽管现代物流...

    光伏并网微逆变器核心技术小析.pdf

    光伏并网微逆变器是太阳能发电系统中的关键设备,尤其在近年来,随着技术进步和市场需求,微逆变器逐渐受到广泛关注。与传统的集中式、串式和多串式逆变器相比,微逆变器有明显优势。它直接连接到每个光伏组件,确保...

    光伏并网微逆变器核心技术小析.docx

    光伏并网微逆变器是近年来在太阳能发电系统中逐渐受到重视的一种技术,尤其在提升系统效率和灵活性方面具有显著优势。相较于传统的集中式、串式和多串式并网逆变器,微逆变器直接连接到每个光伏组件,确保每个组件都...

    大学健美操教育的问题与路径小析.doc

    【大学健美操教育的问题与路径】\n\n在当今社会,随着人们对美的追求和理解不断变化,大学健美操教育面临着诸多挑战。首先,观念的转变是一个关键问题。尽管健美操对全民健身有着积极影响,但在大学校园内,学生们更...

    滞销楼盘问题小析DOC

    《滞销楼盘问题小析》是一份针对房地产行业中普遍存在的滞销楼盘现象进行深度剖析的文档。这份资料旨在提供一种理解和解决滞销楼盘问题的方法论,对于房地产开发商、投资者、销售团队以及相关行业从业者来说,都具有...

    小波分析讲解与实例教学.rar_向小析_图像修复_实例讲解_小波分析_小波分析讲解

    对小波分析分讲解以及实例教学,可以实现,内附word说明

    5°专场视觉设计小析

    网站的专场设计,应该算是网页视觉设计师的必修课,应该也算是最基本功。她所需要的设计理论都是最基本,但同时也是最重要的。设计理论版本多如牛毛,我这里仅仅整理5个方面来分析网页专场设计的一些方法,本人并非...

    唐人送别诗小析 (2003年)

    根据给定文件“唐人送别诗小析 (2003年)”的内容,我们可以从中提炼出关于唐代送别诗的一些重要知识点。 ### 一、唐代送别诗的特点 #### 1. 文字浅显,节奏舒缓 唐代送别诗的语言通常通俗易懂,如同日常交谈般自然...

    Wifi,ZigBee和蓝牙大战小析资料下载

    智能家居被看作是下一个风口,但是近两年智能家居市场一直不温不火。一方面,很多智能产品并不能够抓住用户痛点,真正满足用户的需求,很多用户对此的接受度不高。另一方面,这个市场的格局还未形成, 无论是技术...

    论文研究-计算约简的差别矩阵简化算法不成立.pdf

    论文研究-计算约简的差别矩阵简化算法...实际应用中给出一种简化算法:一边从信息表中提取差别元素构成合取范式,一边用分配律、吸收律作逻辑公式的等价变换,直接得到最小析取范式.本章给出反例,说明该简化算法不总成立.

    论文研究-一种基于改进区分矩阵的属性约简算法.pdf

    现有的很多约简算法都是由构造决策表的区分矩阵出发,将矩阵中非空元素的合取范式转化为极小析取范式。但是,基于Skowron提出的区分矩阵约简算法对不相容决策表会产生错误的结果。为此,提出一种改进的区分矩阵的定义,...

Global site tag (gtag.js) - Google Analytics