`

tomcat设定shared lib共享同样的jar

阅读更多
在项目越来越多的时候,部署在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,但其加载策略和默认的类加载机制不太一样;
分享到:
评论

相关推荐

    tomcat-8_API

    * tomcat-api.jar (Interfaces shared by Catalina and Jasper) * tomcat-coyote.jar (Tomcat connectors and utility classes) * tomcat-dbcp.jar (package renamed database connection pool based on Commons ...

    tomcat-7_API_帮助文档

    * tomcat-api.jar (Interfaces shared by Catalina and Jasper) * tomcat-coyote.jar (Tomcat connectors and utility classes) * tomcat-dbcp.jar (package renamed database connection pool based on Commons ...

    share-make-public:通过文档库中的共享操作在外部共享 Alfresco 中的内容

    要安装它,只需将 make-public-1.0.jar 文件放入 Alfresco 安装中的 tomcat/shared/lib 文件夹,将 share-make-public-1.0.amp 复制到 amps_share,运行 bin/apply_amps.sh 脚本并重启应用服务器。从源头构建提供了...

    tomcat目录介绍2

    tomcat目录介绍2log 这是一个空路径,该路径用于保存Tomcat每次运行后...shared 该路径也是一个空路径,用于系统共享的类库,该路径下包括classes和lib两个路径,其中classes用于存放class文件,而lib用于存放Jar文件

    班级信息管理系统源码

    5.将mysql-connector-java-5.0.5-bin.jar、commons-fileupload-1.2.1.jar、commons-fileupload.jar、commons-io-1.3.1.jar文件拷贝至..\Apache Software Foundation\Tomcat 5.5\shared\lib\目录下。 6.启动TOMCAT...

    share-suggestion-box:Alfresco Share 的意见箱插件

    要安装 dashlet,只需将 share-suggestion-box-1.0.jar 文件放入 Alfresco 安装中的 tomcat/shared/lib 文件夹,然后重新启动应用程序服务器。 如果此文件夹尚不存在,您可能需要创建它。 从源头构建 提供了一个 ...

    upload-v2.rar

    jspsmartupload.jar上传组件必须放在tomcat\common\lib下面,或者tomcat\shared\lib下面。 数据库在系统里面,自行导入或还原。 本系统支持MSSQL数据库,如用其他数据库请自行配置,数据库驱动在lib里面。 功能...

    基于Java+jsp的上传系统

    jspsmartupload.jar上传组件必须放在tomcat\common\lib下面,或者tomcat\shared\lib下面。 数据库在系统里面,自行导入或还原。 本系统支持MSSQL数据库,如用其他数据库请自行配置,数据库驱动在lib里面。 --------...

    tomcat8 + nginx + memcached + cas 实现负载均衡的配置包

    1.2添加memcached如下依赖的jar包到tomcat8.x/lib/: asm-5.1.jar couchbase-client-1.4.12.jar javolution-5.5.1.jar kryo-4.0.0.jar kryo-serializers-0.38.jar memcached-session-manager-2.0.0.jar memcached...

    jspsmartupload图片上传类及示例 v2.0.rar

    基于jspsmartupload.jar类的jsp图片上传系统,数据库采用MSSQL,支持2级分类,您...jspsmartupload.jar上传组件必须放在tomcat\common\lib下面,或者tomcat\shared\lib下面。  数据库在系统里面,自行导入或还原。

    cntz-document-notification:Alfresco 模块以获取有关内容更新的电子邮件通知

    cntz-document-notification--shared.jar in tomcat/shared/lib cntz-document-notification--tomcat/webapps/alfresco/WEB-INF/lib中的src.jar 或者您可以构建放大器以包含这些文件。 蚂蚁 该脚本将在项目的 ...

    alfresco-systemmessages

    使用依赖项将它们附加到您自己的maven项目中,或将其置于tomcat / shared / lib下。 如果您喜欢此安装类型,也会生成Amp文件。 SDK 1和SDK 2 要包含在Alfresco 5.1之前的版本(SDK3之前的版本)中,请使用jar文件的...

    mysql-connector-java-5.0.8-bin

    把mysql-connector-java-5.0.8-bin.jar 分别放到你tomact按照目录中的C:\Program Files\Java\jdk1.6.0_10\Tomcat 5.0\shared\lib文件夹中跟C:\Program Files\Java\jdk1.6.0_10\Tomcat 5.0\common\lib文件夹中这样你...

    jspSmartUpload 使用教程

    将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。 二、相关类说明篇 ㈠ File类 这个类包装了一个上传文件的所有信息。通过它,可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息 File...

    alfresco-get-latest-document:一个简单的 dashlet,用于说明 Alfresco Share 中的存储库层数据 Web 脚本共享层演示 Web 脚本模式

    露天获取最新文档这是一个简单的 dashlet 示例,它比 Hello World 更进一步,展示了在整个 ... 您可以下载源代码并使用随附的 Ant 构建脚本进行部署,也可以从下载页面获取 JAR 并将其放入 $TOMCAT_HOME/shared/lib。

    linux下安装ImageMagick-6.5+JMagick -6.4 经测试成功的

    (这行不要:////////export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar) export PATH=$PATH:/opt/ImageMagick/bin export LD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib export DYLD_...

    带注释的Bootstrap.java

    //"${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar" //读取common.loader String value = CatalinaProperties.getProperty(name + ".loader"); if ((value == null) || ...

Global site tag (gtag.js) - Google Analytics