`

css的tomcat6源码学习日志--启动与classloader

阅读更多
这里有深入的讲解: http://www.packtpub.com/article/starting-up-tomcat-6-1

win下的tomcat6,从startup.bat入口,调用catalina.bat设置环境变量,调用setenv.bat, setclasspath.bat,然后调java,入口org.apache.catalina.startup.Bootstrap,classpath只有bootstrap.jar包。

bootstrap.jar初始化JVM的系统变量,初始化classLoaders,调用catalina.start()启动第一个service.

classLoader的层次:JVM本身有bootstrap, ext和system, 这里system classLoader load tomcat的bootstrap,创建子common classLoader,其有子catalina(server)和shared. 然后将common classLoader设为thread context classLoader。
即:
bootstrap-->ext-->system-->common-->catalina & shared. 由shared作为webapp的parent classloader。
而实际上默认情况下catalina和shared classLoader没有创建(可在conf/catalina.properties中设置),统统指向common. 这可以从jconsole看到。(classLoader都有注册到JMX MBean)。

------part 2-----
bootstrap调Catalina.load(),去重设各种变量,启动tomcat的naming system. 然后有digester将conf/server.xml解析转变成对应的java object. 处理过程中借助一个栈解析临时的元素,直至最后栈底的根元素处理结束。然后catalina被设为根。
这里有两个重要概念patterns and rules,pattern有点类似xpath, rule就是creation, property setting等构建java object的动作。--createDigester(), parse()..
分享到:
评论

相关推荐

    xwiki-commons-classloader-protocol-jar-5.4.zip

    《XWiki Commons Classloader Protocol Jar 5.4与LaZyWorker开源项目解析》 XWiki Commons Classloader Protocol Jar 5.4是一个重要的组件,它属于XWiki开源项目的一部分。XWiki是一个强大的、可扩展的、面向企业的...

    apache-tomcat-7.0.81-src 源码免费下载

    9. **错误处理与日志系统**:Tomcat使用自定义的日志框架,源码中`logging`目录下的类定义了如何记录和处理错误信息。 10. **网络编程**:Tomcat底层使用NIO(非阻塞I/O)和BIO(阻塞I/O)模型,这在`java/org/...

    javase源码-classloader-leak-prevention:ClassLoader泄漏预防/保护

    java源码源码类加载器泄漏预防库 如果您想避免可怕的java.lang.OutOfMemoryError: Metaspace / PermGen space ,只需将此库包含到您的 Java EE 应用程序中,它就会处理剩下的事情! 要了解有关类加载器泄漏、其原因...

    Tomcat6的源码

    【标签】"Tomcat6源码"强调了这个压缩包的核心内容,即与Tomcat6相关的源代码。Tomcat作为轻量级应用服务器,它的源码分析对于学习和理解HTTP服务、Servlet容器、JSP编译和执行流程、线程管理、连接池以及安全管理等...

    j-classloader-ltr

    ### Java ClassLoader 知识点解析 #### 一、引言 在《classloader教程 --- from IBM》这篇教程中,作者Greg Travis通过一系列详细的讲解帮助读者理解Java中的类加载器(ClassLoader)。作为Java运行时系统的一个核心...

    apache-tomcat-源码-lib包

    在"apache-tomcat-源码-lib包"中,我们可以深入理解Tomcat的工作原理以及与Servlet相关的库函数。 1. **Java Servlet**:Servlet是Java平台上的一个标准接口,允许开发人员编写服务器端代码来处理HTTP请求。在...

    Tomcat:apache-tomcat-6.0.18

    6. **bin**:启动和管理Tomcat的脚本。 通过研究源代码,开发者可以学习到如何配置和扩展Tomcat,例如添加新的Connector、自定义错误页面、调整线程池设置等。此外,源码分析还能帮助开发者解决在部署和运行Web应用...

    tomcat 6 源码

    通过研究Tomcat源码,开发者可以学习到如何构建一个高性能的Servlet容器,掌握Java Web应用的核心运行机制,这对于提升Java EE开发能力大有裨益。同时,如果你遇到Tomcat的使用问题或者想要进行定制化开发,源码分析...

    tomcat源码学习

    【标题】"Tomcat源码学习"涉及到的是对Apache Tomcat服务器内部运行机制的深入理解。Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java EE的Web应用规范,特别是Servlet和JSP。源码学习是提升技术水平、...

    apache-tomcat-7.0.40-src

    10. **错误处理与日志记录**:Tomcat内置了错误页面和日志系统,用于调试和监控。源码中可以看到这些功能的实现。 通过研究"apache-tomcat-7.0.40-src",开发者可以更好地理解Web服务器的工作流程,定制化自己的...

    tomcat8源码的maven项目

    3. **学习部署和加载机制**:Tomcat如何加载和管理Web应用程序,包括WAR文件的部署和Classloader的工作原理。 4. **研究线程模型**:Tomcat如何使用线程来处理并发请求,以及线程池的配置和管理。 5. **深入JSP和...

    tomcat8源码

    《深入剖析Tomcat8源码》 ...通过深入学习和分析Tomcat8源码,我们可以更好地理解Web应用的工作原理,提升开发和调优能力。对于Java EE开发者来说,掌握Tomcat源码无疑能够增强对整个Web栈的掌控力。

    Tomcat 5.0.18 ClassLoader source code insight

    《深入理解Tomcat 5.0.18 ClassLoader源码》 Tomcat作为一个流行的开源Java应用服务器,其内部机制的解析对于Java开发者而言具有重要的学习价值。在Tomcat的运行过程中,ClassLoader扮演着核心角色,它负责加载应用...

    restx-classloader-0.33.1.zip

    【标题】"restx-classloader-0.33.1.zip" 提供的是 Restx ClassLoader 的一个版本,这是 Restx 框架的一部分,主要负责处理类加载相关的任务。Restx 是一个轻量级、模块化的 Java web 应用框架,它允许开发者快速...

    apache-tomcat-9.0.11源码

    Apache Tomcat 9.0.11 源码是Java EE开发中不可或缺的一部分,它是一个开源的、轻量级的Web应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)。这个源码版本提供了对Java EE 8标准的支持,包括最新的...

    Tomcat研究之ClassLoader.pdf

    - `tomcat-jk.jar`:Web服务器绑定包,允许Tomcat与Apache等Web服务器集成。 - `tomcat-jk2.jar`:功能同上。 - `tomcat-util.jar`:Tomcat工具类,可能被某些Connector组件使用。 - `tomcat-warp.jar`:用于...

    tomcat启动原理解析

    9. **端口绑定与启动服务** - Tomcat绑定到配置的端口(默认8080)并开始监听HTTP请求。 - 启动AJP或其他协议的服务,如果配置了。 10. **日志系统** - 初始化日志系统,如`org.apache.juli.logging`,记录启动...

Global site tag (gtag.js) - Google Analytics