在项目越来越多的时候,部署在tomcat的发布包也会越来越多,这样难免有很多相同的jar会被加载,占用大量的永久存续区内存,通过设定shared lib来控制相同的jar只加载一个,这样有以下好处:
1、避免不同项目加载相同的jar,减少对永久存续区的内存占用
2、提高tomcat的启动速度,因为少加载了许多重复的jar
一、如何设定shared lib
方式一:
修改conf文件下的catalina.properties文件,配置shared.loader的路径:
配置绝对路径:
shared.loader="D:hs/develop/shared/lib","D:/hs/develop/shared/lib/*.jar"
之后将相同的jar放在指定的文件夹下。
或配置相对路径:
shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar"
之后在和conf同目录下新建shared目录,将相同的jar放在lib里
方式二:
修改conf文件下的catalina.properties文件,配置common.loader的路径,追加shared lib的路径:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/shared/*.jar"
之后在lib文件夹下新建一个shared目录,并将相同的jar放在shared目录下
二、catalina.home和catalina.base的区别
在一个tomcat下,catalina.home和catalina.base指向相同的位置,即bin等目录的父目录。
若是在安装多个Tomcat实例又不想安装多个软件备份的时可以使用这两个属性,在tomcat目录下只有 bin 和 lib 目录被多个tomcat示例公用,其它目录conf、logs、temp、webapps和work 是每个Tomcat实例自己独立的备份。这时他们指向不同的位置:
catalina.home(安装目录):指向公用信息的位置,就是bin和lib的父目录。
catalina.base(工作目录):指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。
三、tomcat6类加载机制
Commonclassloader:负责装载$CATALINA_HOME/common目录下的所有类和jar包,详细的配置可参考$CATALINA_HOME/conf/catalina.properties文件中的common.loader配置;该classloader装载的类对于Server class loader和Webapp class loader是可见的;Commonclass loader在Tomcat启动时创建,其parent classloader是System class loader;
Server classloader:负责装载Tomcat的核心类,位于$CATALINE_HOME/server目录下的所有类和jar,可由catalina.propreties中的server.loader配置指定;它在Tomcat启动时被创建,其parent loader是Commonclass loader;
Sharedclass loader:负责装载webapp公用的类,可以用户通过catalina.properties文件中的shared.loader属性来指定;它在Tomcat启动时被创建,其parentloader也是Common class loader;
Webappclassloader:它只负责加载各自app中WEB-INF/classes以及WEB-INF/lib下的类;其parentloader虽然是Shared class loader,但其加载策略和默认的类加载机制不太一样;
分享到:
相关推荐
标题中的“tomcat8 做session共享所需jar包”指的是在使用Apache Tomcat 8作为Web服务器时,为了实现跨应用或者分布式环境下的Session共享,我们需要特定的jar包支持。这种共享通常是为了在多个Tomcat实例之间同步...
2. **使用Shared ClassLoader**:将多个应用共用的JAR放入`shared/lib`,由Shared ClassLoader加载,减少内存占用。 3. **JAR扫描优化**:默认情况下,Tomcat会扫描`WEB-INF/lib`下的所有JAR包,这可能导致性能问题...
5. **共享库(shared libraries)**:Tomcat 6.0允许在服务器级别的lib目录下放置JAR文件,这些库对所有Web应用程序都是可访问的,提供了代码复用和集中管理的功能。 6. **部署工具(Manager App)**:Tomcat 6.0...
9. $CATALINA_HOME/shared/lib/*.jar 四、 server.xml 配置简介 server.xml 是 Tomcat 的核心配置文件,用于配置 Tomcat 的各种参数。下面讲述这个文件中的基本配置信息: * server:指定服务器的端口和 shutdown...
- /common/lib:存放可供Tomcat服务器和所有Web应用程序共享的JAR文件。 - /conf:存储Tomcat的配置文件,如server.xml、tomcat-users.xml和web.xml。 - /logs:记录Tomcat的日志文件。 - /server/lib:存放...
存放所有Web应用程序共享的jar文件,与$CATALINA_HOME/common/lib类似,但提供了更灵活的定制能力。 12. **各自具体的webapp/WEB-INF/classes下的class文件** 每个Web应用程序都有自己独立的类文件存储位置,...
* 将相同的第三方jar文件移置到tomcat/shared/lib目录下,以减少jar文档重复占用内存的目的。 注意 * 在调整内存大小时,需要根据实际情况进行调整,避免内存溢出。 * 在使用Java程序时,需要注意PermGen Space和...
共享类库位于`$CATALINA_BASE/shared/classes`和`$CATALINA_BASE/shared/lib`目录下,它提供了一种在不修改每个Web应用的情况下,为多个应用提供通用功能的方式。 5. WebApp类加载器: 最后,Tomcat按照Web应用...
- **用途**: 共享库目录,存储Tomcat服务器和所有Web应用都可以访问的JAR文件。 - **子目录**: - `lib`: 包含共享库。 3. **`<CATALINA_HOME>/shared`** - **用途**: 存储所有Web应用可以访问但Tomcat服务器...
- **shared**: 该目录下的`lib`存放所有Web应用可访问,但Tomcat服务器不直接使用的JAR文件。 - **server**: `webapps`子目录包含Tomcat自带的管理应用如`admin`和`manager`,`lib`子目录则包含Tomcat服务器运行...
开发者可以通过将JAR文件放入`common/lib`目录来添加共享库。 6. **Web Applications**:解压后的`apache-tomcat-7.0.94`目录下会包含`webapps`文件夹,里面存放着部署的Web应用程序。每个子目录代表一个独立的应用...
9. `$CATALINA_HOME/shared/lib/*.jar`:加载共享库JAR。 `server.xml`是Tomcat的主要配置文件,包含了关于服务器的详细设置: 1. `server`:定义服务器的基本属性,如监听关闭请求的端口和关闭命令。 2. `service...
6. **Shared Lib**:共享库目录,可以放置所有Tomcat实例都能访问的JAR文件。 在解压"apache-tomcat-6.0.33.zip"后,你会看到以下几个关键目录: 1. **bin**:包含启动和停止Tomcat的脚本,以及一些管理工具。 2. ...
9. `$CATALINA_HOME/shared/lib/*.jar` ##### 3. server.xml配置详解 `server.xml`是Tomcat的核心配置文件之一,用于定义服务器的各种参数和服务组件。以下是该文件中的一些关键配置项: - **Server**:根元素,...
- **`shared`**:此目录下的`lib`子目录存放所有Web应用可以访问、但Tomcat自身不能访问的JAR文件。这主要用于放置那些对所有Web应用通用但并不属于核心Tomcat服务的部分库。 - **`server`**:该目录中包含了Tomcat...
- **lib**:这个子目录用于存放共享的JAR文件,即Java归档文件。这些文件同样可以被多个Web应用所使用,避免了冗余。 #### 五、其他重要目录 除了上述三个关键目录外,Tomcat还包括了其他一些重要的目录: - **...
- **lib**:存放Tomcat运行所需的JAR文件和共享库。 - **logs**:存储Tomcat运行时的日志文件。 - **temp**:Tomcat运行时的临时文件夹。 - **webapps**:默认的Web应用程序部署目录。 - **work**:存放JSP编译后的...
- **common/lib**: 服务器及所有Web应用程序共享的JAR文件。 - **conf**: 存放服务器配置文件,包括`server.xml`(主配置文件)、`tomcat-users.xml`和`web.xml`等。 - **logs**: 保存Tomcat的日志文件。 - **...