怎么把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,但其加载策略和默认的类加载机制不太一样;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。
- docker运行tomcat服务(使用 docker部署tomcat并接入skywalking的使用)
- tomcat正常启动404(Tomcat正常访问localhost报404问题解决)
- springboot启动内置tomcat(解决spring boot + jar打包部署tomcat 404错误问题)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- idea配合tomcat进行web开发(IDEA2021 tomcat10 servlet 较新版本踩坑问题)
- tomcat解决乱码(解决tomcat 静态页面html中文乱码的解决终极篇)
- tomcat服务如何在eclipse中配置(HBuilderX配置tomcat外部服务器查看编辑jsp界面的方法详解)
- tomcatweb 管理(Tomcat源码解析之Web请求与处理)
- tomcat需要修改哪几个端口参数(详解tomcat各个端口的作用)
- tomcatxml文件放在哪(Tomcat中修改server.xml和content.xml后自动还原问题解决)
- docker快速入门和安装(docker安装tomcat8的实现方法)
- nginx tomcat docker 负载均衡(Nginx+Tomcat实现负载均衡、动静分离的原理解析)
- tomcat架构结构图(Tomcat核心组件及应用架构详解)
- idea发布项目在tomcat哪个目录下(idea发布web项目后Tomcat服务器找不到该项目的问题及解决方法)
- 阿里云centos系统安装tomcat(阿里云服务器Tomcat无法访问的问题)
- tomcat启动慢什么原因(Tomcat服务器响应过慢解决方案)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
- 常见的喜阴植物有哪些 养室内盆栽就在这里选(常见的喜阴植物有哪些)
- 这8种耐阴植物,营造阴生植物花境,也是一个不错的选择(营造阴生植物花境)
- 览邦G08 Plus SMART WATCH 测评⑱ 全独立这才是智能手表该有的样子(览邦G08PlusSMART)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
热门推荐
- numpy学习(numpy基础教程之np.linalg)
- dedecms安全设置(织梦系统DedeCMS设定栏目及文档权限登录后跳转到登陆前的页面的实现方法)
- mysql建立索引的主要目的(浅谈Mysql哪些字段适合建立索引)
- dede如何联动筛选(dede 标签调用大全 dedecms 隔五行一个分割线等标签调用)
- navicat怎么导入sql数据库文件(Navicat导出.sql文件方法)
- docker进入容器的命令(Docker 最常用的镜像命令和容器命令详解)
- 云数据库navicat连不上(Navicat Premium15连接云服务器中的数据库问题及遇到坑)
- , , 的区别
- JS中call和apply区别
- jQuery多个版本间,以及与其他js文件冲突的解决方法
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9