怎么把jar包部署到tomcat(使用tomcat设定shared lib共享同样的jar)
怎么把jar包部署到tomcat
使用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的父目录。
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处理高并发请求(Tomcat打破双亲委派机制实现隔离Web应用的方法)
- 如何将tomcat源码以maven方式运行(如何将tomcat源码以maven方式运行)
- idea调试怎么配置tomcat(如何提升Idea启动速度与Tomcat日志乱码问题)
- tomcat需要修改哪几个端口参数(详解tomcat各个端口的作用)
- tomcat服务出现乱码(解决Tomcat10 Catalina log乱码问题)
- idea发布项目在tomcat哪个目录下(idea发布web项目后Tomcat服务器找不到该项目的问题及解决方法)
- tomcatcpu配置(Tomcat进程占用CPU过高的解决方法)
- tomcat是异步非阻塞吗(浅谈Tomcat如何打破双亲委托机制)
- dockertomcat运行参数设置(Docker Tomcat为何看不到访问界面)
- docker和tomcat建立连接(如何基于Dockerfile构建tomcat镜像)
- tomcat服务页面打开超慢(Web服务器Tomcat高级优化)
- idea里面怎么配置tomcat(intellij idea 使用Tomcat部署的项目位置在哪)
- idea怎么在tomcat部署项目(IDEA 配置Tomcat服务器和发布web项目的图文教程)
- tomcat启动闪退拒绝访问(详解Tomcat双击startup.bat闪退的解决方法)
- docker部署tomcat(Docker安装Tomcat、MySQL和Redis的步骤详解)
- centos怎样开启tomcat(Centos8.2云服务器环境安装Tomcat8.5的详细教程)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
- 2021款起亚霸锐到店了 更换车标,竞争宝马X5有戏吗(2021款起亚霸锐到店了)
- 新款起亚霸锐实拍,比普拉多气派,配3.0T V6,引入国内或许能大卖(新款起亚霸锐实拍)
- ()
- 张勇 阿里新任掌门人(阿里新任掌门人)
热门推荐
- css min-width与max-width
- 深入理解mysql索引(MySQL中冗余和重复索引的区别说明)
- dedecms自动裁剪(dedecms 图片页面分离简单方法)
- nginx怎么进一步配置(Nginx已编译的nginx-添加新模块)
- python3.7对象检测(在Python中使用Neo4j的方法)
- pyqt5 登录界面(pyqt5利用pyqtDesigner实现登录界面)
- dedecms分页效果(织梦dedecms将列表页重复的第一页去除的方法)
- js数组排序有哪些(js将多维数组转为一维数组后去重排序)
- css选择器常用的用法和说明(针对IE6的一些CSS Hack编写时的注意点小结)
- django框架教程第100讲(详解Django+Vue+Docker搭建接口测试平台实战)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9