tomcat启动(三)Catalina简要分析】的更多相关文章

上篇解析Bootstrap到 daemon.setAwait(true); daemon.load(args); daemon.start(); 这三个方法实际是反射调用org.apache.catalina.startup.Catalina类的方法 对Catalina类有一段解释 这个google翻译真强 Startup/Shutdown shell program for Catalina. The following command line options are recognized:…
load()方法按从上到下顺序分析(主要分析本人所没学过的知识点,其它略过...). Digester类作用 使用sax技术对xml进行解析 未开始解析时Digester.push(this)这个用来为catalina设置server Digester的stack对象栈中持有Catalina对象, 解析xml过程中需要用到的类: Rule:这个类有很多子类,为解析时遇到不同的匹配模式pattern调用不同的处理动作即不同rule. 当解析到开始标记时会调用其子类ObjectCreateRule.…
概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 catalina.bat 脚本. 至于 setclasspath.bat 这个脚本, 相信看完这一篇, 就可以自己看懂这个脚本了. 可以点击 [Tomcat 源码分析系列] (附件) : setclasspath.bat 脚本 查看附注释的 setclasspath.bat 脚本 catalina.ba…
从链接 Tomcat中组件的生命周期管理公共接口Lifecycle 可以知道调用的是StandardServer.startInternal() @Override protected void startInternal() throws LifecycleException { fireLifecycleEvent(CONFIGURE_START_EVENT, null); setState(LifecycleState.STARTING); globalNamingResources.st…
上篇写到StandardService.init() 这个方法做什么呢?一起来看看. 这个类也是实现了Lifecycle 如图.这个图中i表示Interface接口.如Lifecycle,Container,Executor C表示Class类 如StandardService C上有一个小A表示Abstract Class抽象类 如LifecycleBase,WebappClassLoaderBase 感觉用这个图来表示继承关系很好,但这个不能显示出实现关系.要用类图才可以. public c…
上一回load()方法解析讲到xml解析完成. load()内部接下来会获取server getServer().setCatalina(this); 这个server从createStartDigester()方法中可以看出getServer()返回的是StandardServer对象 具体请看: Catalina.createDigester方法详细理解 1.接着执行Server.init方法 getServer().init();看StandardServer类的关系public fina…
这个批处理才是tomcat服务器启动跟关闭的核心脚本.其中包括....(各种变量),此节将详细讲解这个批处理的逻辑. 先看看第一部分脚本: ******************************************************************************************** if not ""%1"" == ""run"" goto mainEntry if "%TE…
1 - 概述脚本catalina.sh用于启动和关闭tomcat服务器,是最关键的脚本另外的脚本startup.sh和shutdown.sh都是使用不同的参数调用了该脚本该脚本的使用方法如下(引自该脚本本身):  echo "Usage: catalina.sh ( commands ... )"  echo "commands:"  echo "  debug             Start Catalina in a debugger" …
tomcat启动(六)Catalina分析-StandardServer.start() 上一篇分析到:Http11NioProcessor.process(SocketWrapper<S> socketWrapper)会将请求进行转换成生成request,和response对象,然后调用CoyoteAdapter.service(request,response)传递请求给对应的上下文 初始化构造方法 public Http11NioProcessor(int maxHttpHeaderSi…
Tomcat启动加载过程(一)的源码解析 今天,我将分享用源码的方式讲解Tomcat启动的加载过程,关于Tomcat的架构请参阅<Tomcat源码分析二:先看看Tomcat的整体架构>一文. 先看看应用情况 在<Servlet与Tomcat运行示例>一文中,我详细的记录了Tomcat是如何启动一个Servlet的程序的步骤.其中,第6步骤是启动Tomcat,也就是在windows系统上执行startup.bat, 在linux操作系统上执行startup.sh的脚本.那么,我们就从…
环境:windows X64位 Tomcat8.0.47 bootstrap.jar是tomcat的内核 开始位置 startup.bat 查看文本 具体的批处理脚本语法可以查看我整理的文章 https://www.cnblogs.com/gne-hwz/p/10009130.html .bat学习-基础语法(常用) 会先判断系统环境变量是否为空,如果为空则设置当前目录路径为CATALINA_HOME的值,然后调用catalina.bat脚本 在这个脚本内设置CATALINA_HOME 环境变量…
概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 main 方法在哪呢? Tomcat 脚本中又是配置了一些什么参数呢, 什么情况下 Tomcat 会启动失败呢? 带着一些列的疑问我们来分析 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat startup.bat 脚本 该…
在上一次查看tomcat启动文件都干点啥一文中,我们总结出,startup.bat文件的作用就是找到catalina.bat文件,然后把参数传递给它,在startup.bat中,调用catalina.bat的命令call "%EXECUTABLE%" start %CMD_LINE_ARGS%,其中"%EXECUTABLE%"这个就是catalina.bat文件,这个命令至少向catalina.bat传递一个参数--start. 接下来看一下catalina.bat…
在上一次查看tomcat启动文件都干点啥一文中,我们总结出,startup.bat文件的作用就是找到catalina.bat文件,然后把参数传递给它,在startup.bat中,调用catalina.bat的命令call "%EXECUTABLE%" start %CMD_LINE_ARGS%,其中"%EXECUTABLE%"这个就是catalina.bat文件,这个命令至少向catalina.bat传递一个参数--start. 接下来看一下catalina.bat…
[转]Tomcat启动分析 原帖 http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html 以下摘录了部分 ------------------------------------------------------------------------------------ 1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catal…
在了解了tomcat 的一些基本组件之后,学习启动过程就更容易理解了,因为启动过程就是启动各个组件. 目录 启动顺序 Bootstrap类 Catalina类 StandardServer类和StandardService类 总结 启动顺序 tomcat的启动主要是容器的启动,根据tomcat四层架构,启动时由上而下的,而service包含这些组件,service又包含在server里面,启动顺序如下: Bootstrap类 整个tomcat程序的入口——main函数,主要作用就是找到CATAL…
Tomcat启动分析 1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 - Service A Service element represents the combination of one or more Connector components that share a single EngineSer…
原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)   用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读.在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值.接着判断当前目录下是否存在bin\catalina.bat,如果…
当我们在Linux下启动tomcat的时候,通过ps查看其进程信息为,接下来的内容我们就以此进行分析: [tomcat@fdd ~]$ ps -ef |grep java tomcat : tty1 :: /usr/bin/java -Djava.util.logging.config./conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephem…
tomcat启动startup.bat一闪而过(分析与解答) 方法/步骤     在正确配置Tomcat环境变量后,遇到很多次运行startup.bat后,一个窗口一闪而过的.为了分析导致tomcat启动失败的原因,我们可以现在tomcat的目录下选中startup.bat文件,单击右键,选择编辑.   在文本的最后敲上“pause”,保存后重新运行startup.bat   如果有错误信息,这时候会显示出来,可以再根据它的错误提示,上网搜索对应的解决办法.下面是在错误提示窗口遇到过的问题:  …
1)bin目录下的bootstrap.jar中的main方法启动Tomcat org.apache.catalina.startup.Bootstrap类下的main方法 可以看到Bootstrap类使用单例方式在main方法中初始化Bootstrap对象 private static Bootstrap daemon = null; private Object catalinaDaemon = null; protected ClassLoader commonLoader = null;…
------------------tomcat服务开启----------2014-9-26 9:17:07 org.apache.catalina.core.AprLifecycleListener init    //Apache核心类中AprLifecycleListener监听器调用init初始化方法,作用:对服务端的启动,重启,关闭等进行监听.信息: The APR based Apache Tomcat Native library which allows optimal per…
org.apache.catalina.core.StandardContext resources Start Error starting static Resources 引发原因:Eclipse自带的Tomcat中,某个 Eclipse关闭,但是Tomcat中此项目没移除,Tomcat启动找不到该项目.…
系统:centos6.5 x86_64 jdk: 1.8.0_102 tomcat:8.0.37 tomcat 启动报错: ERROR o.a.catalina.session.StandardManager 182 - Exception loading sessions from persistent storage 网络上的解决方案:    (1) Tomcat/work/Catalina/localhost/工程名/SESSIONS.ser session未超时的情况下服务器关闭大的时候…
Tomcat 启动成功后报 INFO [Timer-0] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: 1.某天页面忽然访问错误,查看日志发现没什么问题,使用万能的重启大法,重启后 tomcat 报错: 图片版 文字版 27-Dec-2017 17:53:15.073 INFO [main] org.apache.coyote.AbstractProtoc…
tomcat 启动时报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误 解决办法: 是tomcat版本太高的原因,为其配套的servlet-api.jar不匹配或项目工程lib下有低版本的servlet-api.jar,  tomcat7以前的这个包没有getSessionCookieConfig这个方法,7的包有这个方法,  解决方法,删除项目工程lib文件夹的低版本的servle…
实验三:跟踪分析Linux内核的启动过程 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.调试步骤如下: 使用gdb跟踪调试内核 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:// -S freeze CPU…
java 服务器 tomcat启动 报org.apache.catalina.LifecycleException异常 异常代码如下: [2018-05-10 04:45:08,856] Artifact ideaMavenDemo:war exploded: Artifact is being deployed, please wait...10-May-2018 16:45:09.887 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.cata…
  对于Hadoop来说,是通过在DataNode中启动Map/Reduce java进程的方式来实现分布式计算处理的,那么就从源码层简要分析一下hadoop中启动Map/Reduce任务的过程.   首先,对于Map/Reduce端启动的任务,都是通过一些参数来控制java opts的,mapreduce.map.java.opts,mapreduce.reduce.java.opts,这些参数都在MRJobConfig类中,拿map.java.opts举例来说,org.apache.hado…
在前一章查看tomcat启动文件都干点啥---Bootstrap.java中我们得出结论,在Bootstrap中通过反射调用Catalina类中的getServer,start,stop,stopServer等方法,下面看一下Catalina类中给外部提供的公共方法: Start:其中Catalina类的入口当然是start方法.start方法实现了启动一个新的server事例的功能,看一下start方法的内容: public void start() { if (getServer() ==…