- 浏览: 419709 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
pmh905001:
写的很详尽,感谢!
解析jvm.dll和java.exe -
Bll:
插得真深啊,我的是(eclipse_j2ee_juno):F: ...
在eclipse里jsp编译后的java和class文件的位置 -
heming_way:
谢谢,对我很有用,解答了我对多值依赖的疑问
关于多值依赖--范式! -
JavaStudy2011:
java语言解析xml文件 -
vrussell:
Thanks man, it helps me a lot!
获得IEditorPart和IDocument
今天在独立的Tomcat中部署LifeRay Portal ,结果发现总是不能启动Tomcat,也没有抛出异常,所以就看了一些关于Tomcat启动过程的资料。分享一下。
Tomcat启动分析
1 - Tomcat Server的组成部分
1.1 - Server
A Server element represents the entire Catalina servlet container. (Singleton)
1.2 - Service
A Service element represents the combination of one or more Connector components that share a single Engine
Service是这样一个集合:它由一个或者多个Connector组成,这些Connector共享一个Engine,负责处理所有Connector所获得的客户请求
1.3 - Connector
一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户
TOMCAT有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其它WebServer的请求
Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求
Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求
1.4 - Engine
Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名
当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理
1.5 - Host
代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配
每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理
匹配的方法是“最长匹配”,所以一个path==""的Context将成为该Host的默认Context
所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配
1.6 - Context
一个Context对应于一个Web Application,一个Web Application由一个或者多个Servlet组成
Context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类
当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类
如果找到,则执行该类,获得请求的回应,并返回
2 - 配置文件$CATALI
NA_HOME/conf/server.xml的说明
该文件描述了如何启动Tomcat Server
4 - Context的部署配置文件web.xml的说明
一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类web.xml文件有两部分:servlet类定义和servlet映射定义
每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应
分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入
default
org.apache.catalina.servlets.DefaultServlet
debug0listingstrue1invoker
org.apache.catalina.servlets.InvokerServlet
debug02jsporg.apache.jasper.servlet.JspServletlogVerbosityLevelWARNING3default/invoker/servlet/*jsp*.jsp
5 - Tomcat Server处理一个http请求的过程
假设来自客户的请求为:
http://localhost:8080/wsota/wsota_index.jsp
1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser
发表评论
-
IE中的条件编译
2011-10-30 18:53 2080引用条件编译介绍 在IE有一个几乎没人知道的特性--“条件编 ... -
ClientAbortException: java.net.SocketException: Connection reset by peer: socke
2011-10-13 14:25 1描述下问题 tomcat报错 ClientAbortExc ... -
(转)实现Ajax请求队列按顺序执行
2011-10-07 10:23 5504摘自http://www.ilovejs.net/archiv ... -
关于无法delete文件
2011-09-26 17:12 1422File f=new File(targetDir+&qu ... -
firefox上传文件
2011-09-23 15:19 2184先看一个实例: jsp <tr class=" ... -
HTML标签的<button>导致数据在firefox自动提交和在firefox里面弹出div窗口失败
2011-09-07 15:22 1793项目中遇到这么个问题 项目中想利用div制造弹出窗口的操作 c ... -
转:Div自适应高度
2011-08-04 14:49 1515由于设计页面需要,要把两个并排显示的div实现一样高的效果,n ... -
在eclipse里jsp编译后的java和class文件的位置
2011-08-03 14:08 10266eclipse版本不一样,位置也不一样 第一种:(网上搜到的) ... -
iframe的属性:document和Document以及Document的属性和iframe在各个浏览器获得内部文档的写法
2011-08-03 11:37 2113.document引用到是的 iframe所在页面对象, .D ... -
浏览器加载显示html的顺序
2011-08-02 15:36 2316其实浏览器加载显示html的顺序是按下面的顺序进行的: 1、I ... -
PreparedStatement setString 特殊字符乱码
2011-07-29 13:27 2250PreparedStatement setString 特殊字 ... -
符编码笔记:ASCII,Unicode和UTF-8
2011-07-29 10:37 931阮一峰 日期: 2007年10月28日 1. ASCII码 ... -
自己写的多表单插入数据和几个form同时提交
2011-07-28 18:40 3136<%@ page language="ja ... -
获得IEditorPart和IDocument
2011-04-18 13:08 2044IWorkbench workbench=Platform ... -
黑客利用js--alert(1)
2011-03-14 12:51 2888Javascript代码 ($=[$=[]][(__=!$+ ... -
Tomcat的Classloader
2010-08-27 17:48 4250Tomcat的启动是从解析bat文件开始,bat文件最终调用o ... -
Spring中bean的作用域
2010-08-10 13:44 1818如何使用spring的作用域 ... -
@SuppressWarnings("*****")
2010-08-07 16:25 1081解释一: 屏蔽某些编译时的警告信息 ... -
各种类型文件中java的形式
2010-08-06 17:35 1328.a' : 'application/octet-s ... -
maven的dependency和repository
2010-08-03 14:23 1096...
相关推荐
- 日志文件通常会记录Tomcat启动过程中的详细信息,包括任何异常或错误消息。首先查看`logs`目录下的日志文件,尤其是`catalina.out`,以获取有关启动失败的具体原因。 2. **检查端口号** - 确认Tomcat监听的端口...
这段描述涉及到了Tomcat启动过程中由于MySQL JDBC驱动加载问题导致的常见错误。下面我们将对该问题进行详细分析。 ### 1. MySQL JDBC驱动加载失败 #### 原因分析: - **路径配置错误**:根据错误提示,“Could not...
### Tomcat 6.0 启动过程分析 #### Bootstrap 类的作用 `Bootstrap` 类作为 Tomcat 的启动入口,承担着构建一个独立的类加载器的任务,用于装载 `Catalina` 的内部类,以此来确保这些内部类与系统的 classpath 相...
本文将详细介绍Tomcat启动过程中可能遇到的问题及其解决方案,帮助读者快速定位并解决问题。 #### 二、理解Tomcat启动脚本 ##### 1. `startup.bat` 和 `catalina.bat` - **`startup.bat`**: 这是Windows系统下...
3. **系统资源不足**:包括内存、CPU等硬件资源不足,或者磁盘空间不足等情况,也可能导致Tomcat启动过程中出现问题。 4. **Tomcat配置文件问题**:如`server.xml`、`web.xml`等文件配置不当,可能导致启动失败。 5....
【描述】:Tomcat启动管理工具涵盖了启动、停止、监控以及配置Tomcat服务器的过程。这些工具可以帮助开发者有效地管理他们的应用服务,确保系统稳定运行,并在必要时进行故障排查。 【标签】: 1. Tomcat:Apache ...
### 解决Tomcat无法启动的方法 在日常的开发工作中,我们经常会遇到Tomcat服务器无法启动的问题,这不仅会影响到项目的正常运行,也会增加开发者的调试难度...希望本文能帮助大家顺利解决Tomcat启动过程中的各种问题。
【标题】:Tomcat启动顺序 【描述】:Tomcat作为Apache软件基金会的开源Java Servlet容器,其启动过程是理解其工作原理的关键部分。Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、...
**Tomcat启动原理解析** Tomcat作为一款广泛使用的开源Java应用服务器,其启动过程涉及了众多关键步骤和组件的协同工作。理解Tomcat的启动原理对于开发者来说至关重要,不仅有助于提升性能优化的能力,还能在遇到...
同时,检查日志文件以确认Tomcat启动过程中是否存在任何错误或异常。 #### 7. 故障排查与维护 如果在设置开机启动过程中遇到问题,如服务无法启动或启动后立即停止,应检查Tomcat的日志文件和Windows事件查看器中的...
它会调用`catalina.sh`主脚本来执行实际的启动过程。在Windows中,`startup.bat`是批处理文件,同样会调用`catalina.bat`。启动脚本会加载Tomcat的配置文件,初始化Java环境,然后启动服务器。 二、Tomcat停止脚本 ...
理解Tomcat的启动过程和配置对于优化服务器性能和管理Web应用至关重要。本文将深入解析Tomcat的组成部分、启动流程及关键配置文件。 1. Tomcat Server的组成部分 Tomcat的架构由以下几个核心元素构成: 1.1 ...
- **监控日志**:可以监控Tomcat启动过程中的输出信息,确认服务是否成功启动。 #### 3. Java编程实现 - **类结构**:程序主要由`CheckTomcat`类构成,其中包含了`checkTomcatIsAlive`方法用于检测Tomcat状态,...
一、TOMCAT启动过程 1. **初始化**:当TOMCAT启动时,会读取`conf/server.xml`配置文件,这个文件定义了服务器的各个组件,如监听器、连接器、容器等。 2. **加载服务**:TOMCAT会根据配置文件创建一个`Catalina`...
然而,在实际操作过程中,不少用户会遇到Eclipse中Tomcat启动失败的问题,这不仅影响了开发效率,也可能导致项目延期。本文将深入探讨这一问题,并提供一系列可能的解决方案,帮助开发者们有效应对Eclipse中Tomcat...
这个过程对于软件实施工程师来说非常重要,因为它可以简化维护工作,避免每次系统重启后手动启动Tomcat。以下是如何在CentOS 7上设置Tomcat 8开机启动的详细步骤: 1. **配置Tomcat环境变量**: 首先,我们需要在...
之前tomcat启动老是报错,虽然不影响项目的启动运行,但是有强迫症的程序员会心里不爽: 如下: 问题分析 由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的。 解决方法 后面我把原先tomcat启动环境用的...
标题中的“Tomcat启动和关闭”是指在Apache Tomcat服务器中进行服务的启停操作,这是每个Java Web开发者必备的基础技能。Apache Tomcat是一个开源的Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范...
标题中的“tomcat启动时定时循环执行内容(action)”指的是在Tomcat服务器启动过程中,通过配置或者自定义代码实现一个定时任务,使得该任务在Tomcat启动后能够周期性地自动执行。这种机制常用于需要定期检查、更新...
6. **等待Jenkins初始化**:当Tomcat启动并加载WAR包后,Jenkins会开始初始化过程。这个过程可能需要几分钟,取决于服务器性能和网络速度。 7. **访问Jenkins**:打开浏览器,输入`...