Bootstrap 在启动的时候初始化了三种class loader:common,server和shared。在它的createClassLoader方法里面,通过:
String value = CatalinaProperties.getProperty(name + ".loader");
来得到属性文件catalina.properties里面获得他们的配置:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar
server.loader=
shared.loader=
可以看出默认情况下指示对common class loader做了配置,而实际上它也是server和shared的父loader。
经过replace${}变量之后得到:
C:\cygwin\home\Administrator\tomcat7/output/build/lib,
C:\cygwin\home\Administrator\tomcat7/output/build/lib/*.jar,
C:\cygwin\home\Administrator\tomcat7/output/build/lib,
C:\cygwin\home\Administrator\tomcat7/output/build/lib/*.jar
把他们split成4个repository,尽管有重复,也没有过滤掉。放入:
List<Repository> repositories = new ArrayList<Repository>();
然后利用工厂来创建:
ClassLoader classLoader = ClassLoaderFactory.createClassLoader
(repositories, parent);
这个class loader其实是一个URLClassLoader,用来根据URL查找并load类。如果是jar就直接从jar里面找class,如果是dir,就找它下面的jar,然后从jar里面找类。
然后就查找MBServer,这个其实是为管理和监控JVM运行的API。找到后就将这个class loader 注册进去:
mBeanServer.registerMBean(classLoader, objectName);
因为,server和shared的配置都是空,那么他们的class loader都指向了他们的父loader:common loader。 也就是说默认情况下,这3个loader都是common loader。也就是说tomcat会从output/build/lib下面load 类。
这个目录下面有这些jar:
- 大小: 56.3 KB
分享到:
相关推荐
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
NULL 博文链接:https://smartvessel.iteye.com/blog/716492
修改版tomcat7-maven-plugin-2.2.jar
tomcat7-maven-plugin-2.1.jar
开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-...
tomcat6-dta-ssl-1.0.0.jar 此类文件将有助于tomcat支持ssl协议
apache-tomcat-8.5.20.tar.gz源码包和context.xml文件,这套配置是我自己亲测可用的。。另外我用的redis4这个版本。注意:如果你使用的TOMCAT其他版本。例如tomcat6或者7这套JAR包可能不可用,tomcat8.0没有测试。...
tomcat-redis-session-manager源码
Tomcat8亲测可用 tomcat-redis-session-manager的jar包 修改了tomcat-redis-session-manager源码进行的编译生成的jar包
Tomcat7---Linux版本apache-tomcat-7.0.82.tar.gz 亲测可用。
文件名写错了,此压缩文件支持tomcat8.5。是否支持8.0请自行测试,本人只测试了8.5,可以使用。压缩文件包括tomcat-redis-session-manager-...apache-tomcat-8.5.33.tar.gz,nginx-1.6.2.tar.gz也打包进去,一步到位。
因tomcat7使用redis共享session,其他的包存在问题,自己编译后处理通过。 该包是在https://github.com/jcoleman/tomcat-redis-session-manager 将源码编译后的包。
用于配置 tomcat-redis-session-manager
基于tomcat-redis-session-manager源码进行的编译生成的jar包,压缩包中包含Tomcat7和Tomcat8打好的jar包。
使用tomcat-redis-session-manager进行统一session管理所需jar包,包括tomcat6-jdk6、tomcat7-jdk7、tomcat8-jdk8
tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载
tomcat-juli.jar和tomcat-juli-adapters.jar tomcat-juli.jar和tomcat-juli-adapters.jar
包括commons-pool-1.6.jar,jedis-2.0.0.jar,tomcat-redis-session-manager-1.2-tomcat-6&7.jar