tomcat类加载机制

摘要:
1.1 tomcat类加载机制1.1.1概述Bootstrap | System | Common/Webapp1 Webapp2…注意:这里的加载模型不同于jvm的三层类加载器。总体思路类似。1.1.2所有层的装载机1.1.2.1引导

1.1            tomcat类加载机制

1.1.1    概览

               Bootstrap
          |
          System
          |
          Common
       /     
        Webapp1   Webapp2 ...

备注:这里的加载模型和jvm的三层classloader有区别。总体思想类似。

1.1.2    各层加载器

1.1.2.1         Bootstrap

此类加载器包含Java虚拟机提供的基本运行时类。

加载java/jre/lib 和 java/jre/lib/ext.  相当于jvm的bootstrap和extensions class loader。

1.1.2.2             System

此类加载器通常从CLASSPATH环境变量的内容初始化。Tomcat内部类和Web应用程序都可以看到所有这些类。

加载下面路径的jar包

  • $CATALINA_BASE/bin
  •  $CATALINA_HOME/bin

1.1.2.3             Common

此类加载器包含对Tomcat内部类和所有Web应用程序都可见的其他类。

加载下面路径的jar包

  • $CATALINA_BASE/lib
  •  $CATALINA_HOME/lib

1.1.2.4             WebAppX

为部署在单个Tomcat实例中的每个Web应用程序创建一个类加载器。/WEB-INF/classesWeb应用程序目录中的所有解压缩的类和资源,以及Web应用程序/WEB-INF/lib目录下的JAR文件中的类和资源,都对此Web应用程序可见,但对其他应用程序不可见。

Web应用程序类加载器与默认Java委托模型不同。当从web应用的(webappX类加载器)加载class的请求被处理时,这个类加载器会首先尝试从本地资源自己加载这个类,而不是先委托给父类加载器。

因此,从Web应用程序的角度来看,类或资源加载按以下顺序查找以下存储库:

  • JVM的Bootstrap类
  • 您的Web应用程序的 / WEB-INF /classes
  • 您的Web应用程序的 /WEB-INF/lib/*.jar
  • 系统类加载器类(如上所述 System)
  • 常见的类加载器类(如上所述,Common)

免责声明:文章转载自《tomcat类加载机制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux下挂载NTFS分区错误修复linux安装mysql5.6下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/lld.so.conf

Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。 但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢? 目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so....

解决Geany 编辑器无法导入matplotlib包问题

最近在看《Python编程从入门到实践》这本书,在看到第15章,生成数据时,遇到了一个问题:matplotlib 在Geany编辑器中一直显示找不到matplotlib模块。在网上查看了一些资料后找到了原因。 问题原因 你可以做一个测试,看一下符不符合我说的情况: 重新在终端安装matplotlib,这个时候会提示你已经安装过了: 但是你会发现提示安装的...

flink常用命令

1.查看flink任务 /var/lib/hadoop-hdfs/flink/bin/flink  list 2.停止flink任务 /var/lib/hadoop-hdfs/flink/bin/flink  cancel  job Id 3.启动一个yarn session bin/yarn-session.sh -d -s 3 -jm 2048 -tm...

OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾

 论文下载地址:http://research.microsoft.com/en-us/um/people/jiansun/papers/GuidedFilter_ECCV10.pdf 本文主要介绍导向滤波,但是在网上看这算法还能去雾,不知道是具体是怎么利用导向滤波实现去雾的,希望过来人指点迷津,这块主要是重写了导向滤波应用于彩色图像的部分代码,希望与大家...

VS环境下用thrift-C/C++接口开发hbase应用

一、前言 用C/C++开发hbase应用,需要用到thrift接口。在windows平台使用Visual Studio时,要比在linux平台复杂一些,主要是因为一些依赖库无法做到自动安装(类似yum install或 apt-get install那样),其次是因为Linux本来就是hbase及其依赖库的原生平台。但总体而言,两个平台的过程大体相似。 开...

Postgresql迁移数据文件存放位置

1. POSTGRESQL的安装 centos7 里面默认的pgsql的版本是 9.2.4 如果想用更高的版本需要执行以下如下的命令 rpm -ivh https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm安装成...