随笔分类 - Tomcat服务器
摘要:springBoot项目 war包启动原理参考链接: 【spring boot war包启动原理】 https://www.cnblogs.com/stone-with-big-ears/p/10950581.html 【Tomcat war包加载过程】https://www.jianshu.com
阅读全文
摘要:难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, 错误就是发出了这样的信号: 执行垃圾收集的时间比例太大, 有效的运算量太小. 默认情况下, 如果GC花费的时间超过 98%, 并且GC回收的内存少于 2%, JVM就会抛出这个错误。 资料来源:OutO
阅读全文
摘要:以前觉了maven依赖设置很简单,就是将手动导入jar包转化为自动下载导入 但发现的一个问题, 在使用maven插件tomcat打包上传工具时 老是出现可以上传war包到服务器,但就是启动不了 就一步步排查问题,找了一大堆,最后我是靠注释掉所有启动时的配置代码,尝试着终于找到问题 问题代码AppCo
阅读全文
摘要:在本地eclipse上创建一个tomcat server 即tomcat服务器时, 会复制一份tomca安装目录中的conf文件下的配置文件到这个tomcat server目录下 这个tomcat server目录在workspaces路径,跟其他project同路径 文件如下,这些配置文件是启动t
阅读全文
摘要:今天想在本地eclipse上启动tomcat让项目在本地运行,但是老是报错类找不到异常。 也可能报其它错误,大概都是classNotFoundException。 网上查了一些资料,有人提到servlet-api和tomcat的jar包冲突,导致部署的项目缺少jar包,就报错了。 解决办法。 我们可
阅读全文
摘要:当tomcat的Conector保存着StandardService实例,而StandardService保存着Container的实例 当Http11NioProcessor.process()方法内调用getAdapter.service(request,response)时会调用CoyoteA
阅读全文
摘要:tomcat启动(六)Catalina分析-StandardServer.start() 上一篇分析到:Http11NioProcessor.process(SocketWrapper<S> socketWrapper)会将请求进行转换成生成request,和response对象,然后调用Coyot
阅读全文
摘要:从链接 Tomcat中组件的生命周期管理公共接口Lifecycle 可以知道调用的是StandardServer.startInternal() 1、首先用fireLifecycleEvent()方法发送CONFIGURE_START_EVENT=“config_start”事件 这个事件会被Nam
阅读全文
摘要:Tomcat的组件都会实现一个Lifecycle接口,以方便组件的生命周期的统一管理 interface Lifecycle 组件生命周期中主要的几个方法 事件有: 在tomcat启动过程中用到的几个组件,如StandardServer,StandardService,StandardEngine,
阅读全文
摘要:这个方法主要设置(这个方法很重要,贵在理解,虽然还没学过设计模式。。) 1、遇到<server>标签时创建StandardServer实例 设置StandardServer类内部的相关属性 并调用Catalina.setServer()方法设置server 2、遇到<Server>标签的子标签<Li
阅读全文
摘要:上篇写到StandardService.init() 这个方法做什么呢?一起来看看。 这个类也是实现了Lifecycle 如图。这个图中i表示Interface接口。如Lifecycle,Container,Executor C表示Class类 如StandardService C上有一个小A表示A
阅读全文
摘要:上一回load()方法解析讲到xml解析完成。 load()内部接下来会获取server getServer().setCatalina(this); 这个server从createStartDigester()方法中可以看出getServer()返回的是StandardServer对象 具体请看:
阅读全文
摘要:load()方法按从上到下顺序分析(主要分析本人所没学过的知识点,其它略过。。。)。 Digester类作用 使用sax技术对xml进行解析 未开始解析时Digester.push(this)这个用来为catalina设置server Digester的stack对象栈中持有Catalina对象,
阅读全文
摘要:上篇解析Bootstrap到 daemon.setAwait(true); daemon.load(args); daemon.start(); 这三个方法实际是反射调用org.apache.catalina.startup.Catalina类的方法 对Catalina类有一段解释 这个google
阅读全文
摘要:这个类构造一个类加载器来加载Catalina内部类(通过在server目录下的catalina.home来找到所有的jar文件),和开始定期执行container容器。 这种回旋处理方法的目的是保持Catalina内部类(以及其依赖的任何其他类,如XML解析器)脱离系统类路径,因此对应用程序级别不可
阅读全文
摘要:环境:windows X64位 Tomcat8.0.47 bootstrap.jar是tomcat的内核 开始位置 startup.bat 查看文本 具体的批处理脚本语法可以查看我整理的文章 https://www.cnblogs.com/gne-hwz/p/10009130.html .bat学习
阅读全文