Tomcat 7下如何利用 catalina.properties 部署公用类
Tomcat 有很多配置文件,其中一个是 catalina.properties ,本文介绍catalina.properties 中的设置项。
一、组成
catalina.properties中的设置项包括四个部分:
#第一部分:安全设置
package.access
package.definition
#第二部分:类加载设置
common.loader
server.loader
shared.loader
#第三部分:不需要扫描的类设置
tomcat.util.scan.DefaultJarScanner.jarsToSkip
org.apache.catalina.startup.ContextConfig.jarsToSkip
org.apache.catalina.startup.TldConfig.jarsToSkip
#第四部分:字符缓存设置
tomcat.util.buf.StringCache.byte.enabled
tomcat.util.buf.StringCache.char.enabled
tomcat.util.buf.StringCache.trainThreshold
tomcat.util.buf.StringCache.cacheSize
二、安全设置
请参见 :
http://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html
http://www.oracle.com/technetwork/java/seccodeguide-139067.html
三、类加载设置
请参见:
http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html
1、classloader加载顺序
Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common
Common的配置是通过 catalina.properties中的common.loader设置的。
2、common.loader设置
通常情况下,common.loader是已经设置好的,不需要修改。
common.loader包括以下路径:
- unpacked classes and resources in
$CATALINA_BASE/lib
- JAR files in
$CATALINA_BASE/lib
- unpacked classes and resources in
$CATALINA_HOME/lib
- JAR files in
$CATALINA_HOME/lib
和默认的一些jar包:
- annotations-api.jar — JavaEE annotations classes.
- catalina.jar — Implementation of the Catalina servlet container portion of Tomcat.
- catalina-ant.jar — Tomcat Catalina Ant tasks.
- catalina-ha.jar — High availability package.
- catalina-tribes.jar — Group communication package.
- ecj-*.jar — Eclipse JDT Java compiler.
- el-api.jar — EL 2.2 API.
- jasper.jar — Tomcat Jasper JSP Compiler and Runtime.
- jasper-el.jar — Tomcat Jasper EL implementation.
- jsp-api.jar — JSP 2.2 API.
- servlet-api.jar — Servlet 3.0 API.
- tomcat-api.jar — Several interfaces defined by Tomcat.
- tomcat-coyote.jar — Tomcat connectors and utility classes.
- tomcat-dbcp.jar — Database connection pool implementation based on package-renamed copy of Apache Commons Pool and Apache Commons DBCP.
- tomcat-i18n-**.jar — Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.
- tomcat-jdbc.jar — An alternative database connection pool implementation, known as Tomcat JDBC pool. See documentation for more details.
- tomcat-util.jar — Common classes used by various components of Apache Tomcat.
这些都是系统和工具类,比如数据库的驱动类库、log 类库可以放到此处,web应用的jar 不要放到common.loader 中。
3、server.loader 和 shared.loader
在common.loader 加载完后,tomcat启动程序会检查 catalina.properties文件中配置的server.loader和shared.loader是否设置
如果设置,读取 tomcat下对应的server和shared这两个目录的类库。
server和shared是对应tomcat目录下的两个目录,默认的Tomcat7 下这两个目录是没有的。
设置方法:
server.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar
shared.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar
同时需要在tomcat目录下创建 server和shared目录结构并将公用的、应用类放到里面。
Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common--->Server--->Shared
四、忽略扫描的类设置
默认的一些类tomcat已经设置。
五、字符缓存设置
根据需要设置字符的缓存策略。
默认 tomcat.util.buf.StringCache.byte.enabled=true 设置,其他的被注释了。
六、小结
Tomcat可以通过catalina.properties的server和shared设置,为webapp提供公用类库。
使一些公用的、不需要与webapp放在一起的设置信息单独保存,在更新webapp的war的时候无需更改webapp的设置。
备注:
Tomcat 遵循的规范如下:
- EL 2.2 API.
- JSP 2.2 API.
- Servlet 3.0 API.
很多的配置文件的规则都在这几个规范中定义。
Tomcat 7下如何利用 catalina.properties 部署公用类的更多相关文章
- Eclipse下配置javaweb项目快速部署到tomcat
用惯了VS,再用Eclipse,完全有一种从自动挡到手动挡的感觉啊. 很多同学在Eclipse下开发web项目,每一次修改代码,看效果的时候都有右键项目->Run as -> Run on ...
- 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用
使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...
- Tomcat—怎样在Tomcat Webserver下部署Web项目
总结一下怎样在Tomcat Webserver下部署Web项目:
- Eclipse 单个tomcat多个项目部署原理(tomcat配置的环境变量catalina.home和catalina.base)
一:概念 catalina.home(安装目录):指向公用信息的位置,就是bin和lib的父目录. catalina.base(工作目录):指向每个Tomcat目录私有信息的位置,就是conf.log ...
- Tomcat创建虚拟目录和程序热部署
虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下添加与web应用同名的xml配置文件,这里站点名称为test为例子. test.xml内容:& ...
- tomcat启动(二)org.apache.catalina.startup.Bootstrap分析
/** * Bootstrap loader for Catalina. This application constructs a class loader * for use in loading ...
- Tomcat 映射虚拟目录和程序热部署
虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的虚拟目录: 比如创建一个 ...
- catalina.properties
追踪 startup.bat set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" call "%EXECUTABLE%&q ...
- jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署
一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...
随机推荐
- C与C++,面向过程与面向对象
C与C++在电梯处理上的不同 (注:个人理解) 对比区别: C语言程序制定具体流程,按流程逐步进行. C++程序将过程结构化,需要使用时利用接口访问与调用不同功能的类结构结构. 电梯类代码 电梯类定义 ...
- 用逗号隔开简单数据保存为csv
用记事本编辑简单数据,用英文逗号隔开,编辑为多列,保存为.csv文件.可以用Excel打开编辑.
- CWnd类虚函数的调用时机、缺省实现
MFC(VC6.0)的CWnd及其子类中,有如下三个函数: class CWnd : public CCmdTarget{ public: virtual BOOL PreCrea ...
- iOS- 如何从Boujour里解析出IP地址(sockaddr *的解析)?
1.前言 之前有网友跟我留言说到: 如何从Boujour 解析完的数组里解析出ip地址? 因为Boujour本身解析完毕之后的addresses是一个数组 那我们如何从这个数组里解析出我们需要的IP地 ...
- ZOJ 2072 K-Recursive Survival
https://vjudge.net/contest/67836#problem/K n people numbered 1 to n around a circle, we eliminate ev ...
- 【Linux】- ps 命令
Linux ps命令用于显示当前进程 (process) 的状态. 语法 ps [options] [--help] 参数: -A 列出所有的行程 -w 显示加宽可以显示较多的资讯 -a ...
- Jenkins系列-Jenkins介绍与部署
Jenkins是什么? Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测 ...
- HTML表单之input元素的23种type类型
摘自:http://www.cnblogs.com/xiaohuochai/p/5179909.html 了解HTML表单之input元素的23种type类型 随着HTML5的出现,input元素新增 ...
- [洛谷P4174][NOI2006]最大获利
题目大意:同Petya and Graph,数据范围改成$n\leqslant5\times10^3,m\leqslant5\times10^4$ 题解:同上 卡点:无 C++ Code: #incl ...
- [洛谷P3181][HAOI2016]找相同字符
题目大意:给你两个字符串,求从两个字符串中各选择一个字串使得这两个字串相同的方案数. 题解:建广义$SAM$,对每个点求出在第一个串中出现次数和第二个串中出现次数,乘起来就行了 卡点:无 C++ Co ...