java web 简析--二,TOMCAT结构及运行过程解析
2015-05-28 18:10
806 查看
tomcat文件结构
了解tomcat启动过程:
startup.bat
bin/startup.bat批处理文件解读:http://blog.csdn.net/pangdingshan/article/details/7214293:startup.bat 的作用主要是检查catalina.bat 执行所需环境,并调用catalina.bat 批处理文件
catalina.bat
bin/catalina.bat批处理文件解读:http://www.cnblogs.com/fantiantian/p/3623740.html:caltalina.bat的作用是生成如下命令:
转化为如下命令:
Using CATALINA_BASE: "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
Using CATALINA_HOME: "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
Using CATALINA_TMPDIR: "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\temp"
Using JRE_HOME: "G:\Program Files\Java\jdk1.6.0_45"
Using CLASSPATH: "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\bootstrap.jar;F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\
tomcat-juli.jar"
start "Tomcat" "G:\Program Files\Java\jdk1.6.0_45\bin\java.exe"
-Djava.util.logging.config.file="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\conf\logging.properties"
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\endorsed"
-Dcatalina.base="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
-Dcatalina.home="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
-Djava.io.tmpdir="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\temp"
-classpath "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\bootstrap.jar;F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\tomcat-juli.jar"
org.apache.catalina.startup.Bootstrap start
实际执行的命令为:
java -Djava.util.logging.config.file="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\conf\logging.properties"
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\endorsed"
-Dcatalina.base="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
-Dcatalina.home="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build"
-Djava.io.tmpdir="F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\temp"
-classpath "F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\bootstrap.jar;F:\DBSPACEBAC\apache-tomcat-7.0.62-src\output\build\bin\tomcat-juli.jar"
org.apache.catalina.startup.Bootstrap start
===以下为batch命令中start命令的相关参数解析====
START
["title"]
[/D path]
"title" 在窗口标题栏中显示的标题。
path 启动目录。
===以下为java中java命令的相关参数解析====
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
[-options]其中选项包括:
-classpath <目录和 zip/jar 文件的类搜索路径>
用 ; 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
例如:可以在运行前配置一些属性,比如路径什么的。java
-Dconfig="d:/config/config.xml" Abc
这样在Abc中就可以通过System.getProperty("config");获得这个值了
[args..]class类中需要的参数
总结以上的Tomcat启动bat脚本,为如下逻辑:
startup.bat=catalina.bat start=java Bootstrap start(附带-D、-classpath选项)
Bootstrap.java
参考: 《Tomcat8源码编译及导入Eclipse中研究》http://www.cnblogs.com/lanxuezaipiao/p/3640923.html需要注意:
1,jdk版本和tomcat版本需要对应,例如:tomcat7使用jdk1.6版本即可,使用高的jdk版本,在使用ant命令时会报类编译错误。
2,导入的包设置为项目的source:
将java设置成source folder,java build path ->Source->Add folder...->选择java。
3,可以通过tomcat源码目录中输入命令:ant ide-eclipse获取需要的jar包
加载的JAR报为ant目录下lib中的ant.jar,将base.path的值对应的文件中将所有jar包加载
3,找到类:org.apache.catalina.startup包中的Bootstrap类。
run as:在Arguments的VM arguments中设置
-Dcatalina.home="d:\output\build"
参考:《查看tomcat启动文件都干点啥---Bootstrap.java》http://www.cnblogs.com/fantiantian/p/3638016.html
在此文中我们得出在(tomcat7.0版本中):
(1)Bootstrap中如何通过创建的commonLoader=catalinaLoader=sharedLoader来加载类。
(2)在Bootstrap中使用反射机智来加载来调用catalinaDaemon中的方法。
(3)如何获取catalina.properties配置文件。
==========================================
在这里我们知道TOMCAT启动过程,但是这里并没有解答tomcat作为容器是如何工作的,在了解这个问题之前,我们先来了解下容器的作用,如此再回来带着目标看tomcat的源码。
相关文章推荐
- Swing 写的客户端程序在java web start 运行,多语言过程中,JOptionPane.showMessageDialog() 按钮多语言问题
- 用DB2的Java存储过程结合Tomcat连接池开发Web项目
- 大专生JAVA这条路---tomcat与web程序结构
- JAVA项目直接触之新手遇到的问题:引入web project运行tomcat后,出现:严重: Error listenerStart
- java程序运行过程解析
- Tomcat web应用访问过程解析
- Myeclipse中Struts2运行问题:Could not create JarEntryRevision for [jar:file:/E:/Java/Tomcat%206.0/webapps/Struts2.1/WEB-INF/lib/struts
- JavaWeb -- Servlet运行过程 和 细节
- JavaWeb -- Servlet运行过程 和 细节
- java Class文件内部结构解析过程详解
- eclipse启动或者运行过程中tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
- Tomcat容器运行struts2+spring+mybatis架构的java web应用程序简单分析
- JAVA web 程序设计的目录结构解读和新建一个程序、部署和运行
- javaweb-servlet重定向的运行过程
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
- Java程序编译和运行过程图文解析
- HzhJava框架搭建二:添加tomcat和spring运行一个简单web程序
- java+oracle+web(第六天) tomcat介绍 (二)WEB应用结构
- 解析Tomcat内部结构和请求过程
- java程序运行过程解析