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. 很多的配置文件的规则都在这几个规范中定义。 (责任编辑:IT) |