使用tomcat设定shared lib共享同样的jar_Tomcat

来源:脚本之家  责任编辑:小易  

在项目越来越多的时候,部署在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进程占用CPU过高的解决方法SpringBoot启动嵌入式Tomcat的实现步骤Tomcat打破双亲委派机制实现隔离Web应用的方法浅谈Tomcat如何打破双亲委托机制十五道tomcat面试题,为数不多的机会!

  • 本文相关:
  • tomcat服务器安全设置方法
  • linux安装与卸载tomcat8的详细图文教程
  • 在无界面centos7上部署jdk和tomcat的教程
  • tomcat+mysql高并发配置优化讲解
  • 利用systemctl管理tomcat启动、停止、重启及开机启动详解
  • intelli idea中配置tomcat找不到的解决办法
  • tomcat解析xml和反射创建对象原理
  • tomcat服务器宕机解决方案
  • 基于idea部署tomcat服务器的步骤详解
  • 基于tomcat的连接数与线程池详解
  • 如何设定tomcat启动时jvm内存大小
  • myeclipse中如何使用tomcat8.0
  • 如何配置和使用Tomcat访问日志
  • 如何更改tomcat7及以上版本内存设置
  • linux 下怎么安装配置tomcat
  • 如何让项目使用myEclipse部署在tomcat的ROOT目录下
  • 使用安装版的tomcat需要设置环境变量么
  • tomcat6 如何设置可以配置自己的项目为根路径
  • 使用Eclipse启动Tomcat6时出现 'Starting Tomcat v6.0 Serve...
  • tomcat 6.0如何布置,web.xml 里面应该是什么内容,所有的变量设...
  • 如何将tomcat添加为linux系统服务
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器tomcat进程占用cpu过高的解决方法springboot启动嵌入式tomcat的实现步骤tomcat打破双亲委派机制实现隔离web应用的方法浅谈tomcat如何打破双亲委托机制十五道tomcat面试题,为数不多的机会!tomcat服务器安全设置方法linux安装与卸载tomcat8的详细图文教程在无界面centos7上部署jdk和tomcat的教程tomcat+mysql高并发配置优化讲解利用systemctl管理tomcat启动、停止、重启及开机启动详解intelli idea中配置tomcat找不到的解决办法tomcat解析xml和反射创建对象原理tomcat服务器宕机解决方案基于idea部署tomcat服务器的步骤详解基于tomcat的连接数与线程池详解tomcat7.0安装配置详细(图文)直接双击启动tomcat中的startup.tomcat中更改网站根目录和默认页在tomcat中部署web项目的操作方法如何修改tomcat默认端口号8080的关于tomcat的server.xml里host节tomcat环境变量详细配置步骤tomcat启动报错:java.util.zip.tomcat启动startup.bat一闪而过问启动tomcat时 错误: 代理抛出异常centos7 下载安装tomcat 9的教程详解解决idea导入web项目并发布到tomcat问题centos环境下使用tomcat 部署springboot的tomcat配置及如何在eclipse中启动快速解决tomcat重新配置后启动慢的问题tomcat7.0设置虚拟目录配置虚拟路径的方法tomcat与jdk版本对应关系以及tomcat各版本windows server利用批处理脚本判断端口启传统tomcat启动服务与springboot启动内置tocat 下的日志配置参考代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved