`
零点5度
  • 浏览: 19302 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

tomcat启动加载过程

阅读更多

 我 是在看jvm类加载机制时突然想到我们经常使用的tomcat是如何启动?如何加载类的?于是顺藤摸瓜找了找,和大家分享下,比较粗糙,不要介意。

1、start.bat是启动tomcat的脚本,查看脚本可知其实是启动catalina.bat。

2、在catalina.bat中可以看到执行setclasspath.bat,setclasspath.bat是做一些变量参数设置,比如这里可以设置JVM的内存。

3、在catalina.bat最重要的启动入口:

  1. %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%  

在catalina.bat看到CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar和MAINCLASS=org.apache.catalina.startup.Bootstrap,就知道bootstrap.jar包中的main方法是tomcat的主入口。

4、通过反编译我们可以看到如图:

这里有三个类加载器,主要使用commonLoader去加载tomcat的核心包,在catalina.properties中可以看到如下配置:

  1. common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar  

这些核心包中又有类加载器去加载我们的项目,这里我就没有继续追下去了,但是我想肯定与经常配置的server.xml有关,比如下面的配置:

  1. <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">  
  2. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
  3.               prefix="localhost_access_log." suffix=".txt"  
  4.               pattern="%h %l %u %t "%r" %s %b" />  
  5. <Context  path="/bcp"  docBase="D:\dist\WebContent" antiResourceLocking="false" privileged="false" reloadable="true"/>  
  6. </Host>  
 

 

分享到:
评论

相关推荐

    Tomcat启动时类加载顺序

    详细说明了tomcat启动过程中 加载资源的顺序

    将tomcat加入到本地服务的过程

    将tomcat加入到本地服务中去,设置tomcat的服务自动启动,这样在服务器上通过tomcat运行的项目,即使服务器重启,tomcat也可以自动重启,这样,项目也就不会宕机了。

    Nginx+Tomcat负载均衡

    3.这里只需要修改Nginx的配置,让它通过tomcat来转发,所以我们在这一步只需要在nginx.conf中添加几行代码就行。 如果看不懂 。建议直接拿我替来用。 Copy下面的内容 替换 你的nginx.conf注意黄色端口要改为你的。 ...

    解决应用启动失败但tomcat不报错的方法

    最近遇到了一个奇葩的问题就是应用启动失败,但是tomcat没有报任何的日志出来,log4j.properties日志级别写的是debug级别也没用。 解决过程 遇到这种情况,可以试着在web应用的classpath目录添加一个logging....

    TOMCAT+IIS配置方法

    一.说明: 配置如下:Win2000 Server + IIS 5.0(Win2000自带)+ ...启动tomcat 安装完tomcat之后(具体安装过程略),要启动Tomcat很简单,首先可以查看tomcat\bin\startup.bat文件,利用控制面板里面的系统

    详解tomcat热部署和热加载的方法

    我在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载:  1.热加载:在server.xml -&gt; context 属性中 设置 ...

    在Apache Tomcat 7设置redis作为session store

    redis已经有组件支持直接在tomcat7中设置下将redis作为tomcat默认的session存储器,下面介绍下配置过程 1.从http://redis.io/下载redis,按照redis服务端 wget http://download.redis.io/redis-stable.tar.gz ...

    一个项目的SpringBoot微服务改造过程

    SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、...编码简单,SpringBoot只需要在pom文件中添加一个starter-web依赖,即可帮助开发者快速启动一个web容器,非常方便。配置简单,SpringBoot可以通过简单

    xmljava系统源码-classfinal:Java类加密工具

    xml java系统源码 ClassFinal 介绍 ...framework、swagger等需要在启动过程中扫描注解或生成字节码的框架。 支持maven插件,添加插件后在打包过程中自动加密。 支持加密WEB-INF/lib或BOOT-INF/lib下的

    基于ssh和mysql的教材交易系统

    1、安装Java: 安装的是jdk1.7.0_09,安装... war包在tomcat启动时会自动解压并加载应用。 5、启动tomcat服务器,这样就可以通过本地浏览器访问http://localhost/8080/dangdang/main/mian.jsp 进入系统应用主页了。

    电子商城项目

    这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“Start Service”菜单项启动Tomcat服务器,启动...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 11.nginx的安装及启动、停止.avi │ 12.nginx的配置文件-通过端口号区分虚拟机.avi │ 13.通过域名配置虚拟机.avi │ 淘淘商城第二天笔记.docx │ ├─03.第三天 │ 01.课程回顾.avi │ 02.课程计划.avi │ 03....

    CMS系统Rk_Cms.zip

    将war放入tomcat的webapps目录,启动tomcat即可生成eclipse项目文件mvn eclipse:eclipse -Dwtpversion=1.0查看依赖树mvn dependency:tree在docker容器中运行先启动一个mysql容器docker run --name rk_cms_db -...

    ClassFinal字节码加密工具-其他

    支持maven插件,添加插件后在打包过程中自动加密。支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。环境依赖:JDK 1.8 +本工具使用AES算法加密class文件,密码是保证不被破解的关键,请保存好密码,请勿泄漏。密码...

    基于JSP的BBS论坛的源代码

    BBS论坛的源代码 运行方式如下: 1.将SimpleBBS\database\Student.mdf以及SQLTest.mdf这...7.启动Tomcat,运行新建的虚拟目录的站点 以下是笔者提供的在Tomcat/conf/server.xml中配置的虚拟目录的XML代码,仅供参考: ...

    (java)电子商务

    重新启动Tomcat e.访问首页测试 如果缺少包文件,请登录在线支持论坛下载 如果在安装使用过程中有任何问题欢迎访问 http://www.wanglong.cc/bbs/forumdisplay.php?fid=14 咨询 3.其他说明 本软件版本是V3.0,...

    JuShaTa:JuShaTa是一个Java容器,提供模块隔离及模块热加载能力

    JuShaTa容器 JuShaTa是一个Java容器,提供模块隔离及...但是在一个Java应用里面包含多个SpringBoot服务时,这些服务可能会调用不同版本的jar包,那么在程序启动或者运行过程中可能会报NoSuchMethodException这样的异常

    (java)电子商务

    重新启动Tomcat e.访问首页测试 如果缺少包文件,请登录在线支持论坛下载 如果在安装使用过程中有任何问题欢迎访问 http://www.wanglong.cc/bbs/forumdisplay.php?fid=14 咨询 3.其他说明 本软件版本是V...

    Java项目开发与毕业设计指导

    将生成的SchoolEbay.war添加到Tomcat的webapps目录下,并启动Tomcat、启动Sql Server。访问http://localhost:8080/SchoolEbay/index.jsp,可启动本项目。 Ch09:Ajax技术在网上教学平台的应用 安装JDK,配置环境...

    公司人事管理系统.(jsp+sql2000)

    在这里我们设默认安装目录为c:\Tomcat安装完毕,更改环境变量(同上进入[环境变量]对话框),用同样的方法把c:\Tomcat添加到TOMCAT_HOME环境变量中。启动Tomcat,在浏览器的[地址]下拉列表框中输入...

Global site tag (gtag.js) - Google Analytics