Tomcat架构

Tomcat架构

一、目录结构

1.conf目录:

catalina.policy:Tomcat安全策略文件,控制JVM相关权限,具体可以参考java.security.Permission

catalina.properties:Tomcat Catalina行为控制配置文件,比如 Common ClassLoader

logging.properties:Tomcat日志配置文件,JDK logging

server.xml:Tomcat Server配置文件

  •     GlobalNamingResources:全局JNDI资源

context.xml:全局Context配置文件

tomcat-users.xml:Tomcat角色配置文件,(Realm文件实现方式)

web.xml:Servlet标准的web.xml部署文件,Tomcat默认实现部分配置入内:

  • org.apache.catalina.servlets.DefaultServlet
  • org.apache.jasper.servlet.JspServlet

2.lib目录

Tomcat存放公用类库

ecj-*.jar:Eclipse Java编译器

jasper.jar:JSP编译器

 

3.logs目录

localhost.${date}.log:当Tomcat应用起不来的时候,多看该文件,比如:类冲突

  • NoClassDefFoundError
  • ClassNotFoundException

catalina.${date}.log:控制台输出,System.out外置(System中有setOut(PrintStream out) 方法控制打印到文件)

 

4.webapps目录

简化web应用的部署方式

 

二、部署Web应用

1.方法一:放置在webapps目录

直接将文件夹拖过去

2.方法二:修改conf/server.xml

在Host下添加Context元素:

<Context docBase=”${webAppAbsolutePath}” path=”/” reloadable=”true” />

可以添加多个,如,再添加一个:

<Context docBase=”${webAppAbsolutePath}” path=”/demo” reloadable=”true” />

 

熟悉配置元素可以参考:org.apache.catalina.core.StandardContext的setter方法

Container

  •     Context

该方法不支持动态部署,建议考虑在生产环境使用。

 

3.方法三:独立Context.xml配置文件

首先注意conf\Catalina\localhost

独立context XML配置文件路径:${TOMCAT_HOME}/conf/Catalina/localhost + ${ContextPath}.xml

注意:该方法可以实现热部署,因此建议在开发环境使用。

 

问题:

1.如果配置path的话 是以文件名为主还是以配置的为主

独立context XML配置文件时,设置path属性是无效的。

2.根独立context XML配置文件路径

${TOMCAT_HOME}/conf/${Engine.name}/${HOST.name} + ROOT.xml

3.如何实现热部署

调整<context>元素中的属性reloadable=”true”

4.连接器里面的线程池是用的哪个线程池

注意conf/server.xml文件中的注释:

public interface Executor extends java.util.concurrent.Executor, Lifecycle {
String getName();

void execute(Runnable var1, long var2, TimeUnit var4);
}

 

发表评论

邮箱地址不会被公开。 必填项已用*标注