java web 简析--二,TOMCAT结构及运行过程解析
来源:互联网 发布:java.util.base64 类 编辑:程序博客网 时间:2024/06/15 13:49
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的源码。
- java web 简析--二,TOMCAT结构及运行过程解析
- Tomcat运行Java Web
- java EE 配置web project 及Tomcat的运行配置
- java程序运行过程解析
- java程序运行过程解析
- java+oracle+web(第六天) tomcat介绍 (二)WEB应用结构
- Tomcat web应用访问过程解析
- Tomcat web应用访问过程解析 .
- Tomcat的顶层结构及启动过程
- Tomcat 请求过程源码解析(二)
- tomcat 解析(二)-消息处理过程
- ubuntu16.04 安装java web 运行环境过程 及部署项目过程
- IE 解析 Web Page DOM结构 (二)
- Tomcat运行Java Web内存溢出总结
- Tomcat运行Java Web内存溢出总结
- Tomcat运行Java Web内存溢出总结
- Tomcat运行Java Web内存溢出总结
- Java Web网站运行环境搭建(Tomcat)
- mysql双机互备
- AsyncTask的使用
- 【翻译】Ext JS 5:为不同设备设置不同的主题
- Linux初学,利用共享内存,有名管道,select实现两个用户之间的自由对话。
- gem5的安装编译及测试运行
- java web 简析--二,TOMCAT结构及运行过程解析
- listview/gridview上checkbox和button以及item获取焦点的问题
- 状态空间
- 2.27RemoveNthNodeFromEndofList
- Mac下Eclipse项目导入到Android Studio
- spark学习逻辑回归
- oracle 添加用户
- <C++ primer>习题16.24
- java socket编程