项目上最近要把内置的jetty换成tomcat, 来更好的支持servlet 3.0

本来以为换个容器, 几十行代码就好了. 实际上换了tomcat后, 一开始启动tomcat, 非常的慢.

jetty只要几秒就可以启动的web工程, 内嵌tomcat花了接近15s, 直接启动tomcat, 接近10s.

后来试了下, 删除了项目里的web.xml, 发现直接启动tomcat只要0.6s, 而内嵌tomcat居然要5s.

这就很奇怪了, 因为web工程里既没有WEB-INF/lib, 也没有web.xml, 这多出来的5s来源何处.

对比了直接启动和内嵌启动的日志, 发现有一些日志不一样.

org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
信息: No global web.xml found

把源码倒腾下来, 搜索No global web.xml found, debug进去看,

发现在ContextConfig中有个webConfig方法, 里面有个扫描jar里class,

匹配注解来加载fragments. 他会扫描WEB-INF/lib以及classpath, jdk路径下的jar来匹配需要的类.

就是这个导致内嵌的tomcat启动速度低于直接启动, 我们业务用不到, 注释掉后, 速度跟直接启动差不多了.

最新文章

  1. 利用WCF双工模式实现即时通讯
  2. 8天掌握EF的Code First开发之Entity Framework介绍
  3. Kosaraju 算法检测有向图的强连通性
  4. TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之一
  5. 总结-Hibernate
  6. php mysql实体字符
  7. PHP获取不了React Native Fecth参数的解决办法代码是怎样?
  8. requesting java ast from selection
  9. 怎样把function中的arguments变成普通数组
  10. js中的函数,Date对象,Math对象和数组对象
  11. 【转载】深度解析Android中字体设置
  12. 继承control的自定义TextBox
  13. 3种日志类型,微信付款反馈-->写入txt日志
  14. This compilation unit is not on the build path SVN
  15. Oracle :多表更新多个字段
  16. JS数据交换的三种方式
  17. BZOJ1131 [POI2008]Sta 其他
  18. 改变checkbox的默认样式
  19. Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法
  20. Microsoft translater

热门文章

  1. XAMPP禁止目录浏览的方法
  2. JavaScript 历史漫谈
  3. html5版 音乐播放器
  4. Centos定时启动和清除任务
  5. 微信小程序--TabBar不出现的一种原因
  6. ubuntu自动登录tty1(shell,text)配置
  7. Ubuntu 11.04 NFS 配置
  8. Ubuntu 11.04安装arm-linux-gcc-4.4.3/arm-none-linux-gnueabi-gcc安装包
  9. 项目总结1——excel导出相关问题
  10. 浅析设备管理的MTTR,MTTF,MTBF计算方法