我们会把工程打成war包部署到tomcat中,然后由容器来对其进行解压,这个过程是怎么样的呢? 接下来我拉把这个面纱揭开看一下,tomcat源代码如下:[b]1.[/b]URL war = new URL("jar:" + (new File(docBase)).toURI().toURL() + "!/");
// Expand the WAR into the new document base directory
JarURLConnection juc = (JarURLConnection) war.openConnection();
juc.setUseCaches(false);
JarFile jarFile = null;
InputStream input = null;
try {
jarFile = juc.getJarFile();
Enumeration jarEntries = jarFile.entries();
while (jarEntries.hasMoreElements()) {
JarEntry jarEntry = (JarEntry) jarEntries.nextElement();
String name = jarEntry.getName();
int last = name.lastIndexOf('/');
if (last >= 0) {
File parent = new File(docBase,
name.substring(0, last));
parent.mkdirs();
}
if (name.endsWith("/")) {
continue;
}
input = jarFile.getInputStream(jarEntry);
// Bugzilla 33636
File expandedFile = expand(input, docBase, name);
long lastModified = jarEntry.getTime();
if ((lastModified != -1) && (lastModified != 0) && (expandedFile != null)) {
expandedFile.setLastModified(lastModified);
}
input.close();
input = null;
}
} catch (IOException e) {
// If something went wrong, delete expanded dir to keep things
// clean
deleteDir(docBase);
throw e;
} finally {
if (input != null) {
try {
input.close();
} catch (Throwable t) {
;
}
input = null;
}
if (jarFile != null) {
try {
jarFile.close();
} catch (Throwable t) {
;
}
jarFile = null;
}
}
[b]2.[/b]熟悉tomcat的兄弟都知道,容器在启动的时候其实执行的是两个过程,第一:初始化,第二:启动过程; 而就是在启动HOST的过程中,触发一个start事件,lifecycle.fireLifecycleEvent(START_EVENT, null);
执行到HostConfig类的lifecycleEvent方法中,然后执行start()方法,deployApps方法 —》deployWARs(appBase, appBase.list()); 然后执行到StandardHost的addChild方法 启动StandardContext类的start方法,init方法, fixDocBase()方法,在这个类里会调用ExpandWar.expand(host, war, contextPath);来进行war包的解压,就到此为止,
分享到:
相关推荐
"Ubuntu 上 Tomcat 部署 war 包失败的解决办法" 本文将详细介绍 Ubuntu 上 Tomcat 部署 war 包失败的解决办法,涵盖了 jdk 版本不对、war 包中的库与 Tomcat 自带的库矛盾、Tomcat 初始页中的推举工具、日志文件的...
tomcat文章中的项目部署的示例war包,用于部署项目测试 tomcat文章中的项目部署的示例war包,用于部署项目测试 tomcat文章中的项目部署的示例war包,用于部署项目测试 tomcat文章中的项目部署的示例war包,用于部署...
【Tomcat部署WAR项目操作文档】 Tomcat是一个广泛使用的开源Java Servlet容器,它允许开发者部署Web应用程序,包括WAR(Web Application Archive)格式的文件。以下是一份详细的步骤指南,涵盖了从打包WAR文件到在...
【Tomcat部署WAR包】 1. 准备:确保Tomcat服务器已经安装并运行。将TestWas.war文件放置在Tomcat的`webapps`目录下。 2. 自动部署:Tomcat默认开启自动部署功能,当检测到`webapps`目录下的WAR文件时,会自动解压...
在本文中,我们将详细介绍如何使用Tomcat部署War文件。 一、Tomcat安装和配置 首先,需要在系统中安装好JDK和Tomcat。安装好Tomcat后,可以在安装目录下找到bin文件夹,例如D:\Program Files\apache-tomcat-6.0.32...
在部署多个Web应用程序(war包)至Apache Tomcat服务器时,我们可以遵循一系列详细步骤来确保各个应用程序能够正确部署并相互独立运行。以下是详细的知识点介绍: 1. 环境准备: 首先,确保已经正确安装了Java开发...
"Maven自动部署WAR包到Tomcat" Maven自动部署WAR包到Tomcat是将Maven项目打包成WAR包并自动部署到Tomcat服务器的过程。下面是该过程的详细步骤: 步骤一:配置Tomcat 在Tomcat安装目录下找到tomcat-users.xml文件...
在给定的压缩包文件中,包含了两个不同版本的Flowable,分别是6.4.0和6.7.2,这两个版本都是针对Tomcat服务器进行部署的WAR包。 首先,我们来了解一下Tomcat。Tomcat是一款轻量级的应用服务器,主要用于运行Java ...
本文将深入探讨如何在Linux环境下利用Tomcat服务器来部署Jenkins的WAR包。 首先,我们需要了解Jenkins的基本概念。Jenkins是一个基于Java开发的持续集成工具,它支持多种插件,可以实现自动化构建、测试和发布流程...
springboot项目打成war包并部署到Linux的Tomcat中流程目录:启动类继承`SpringBootServletInitializer`pom文件添加`war`mvn命令操作(clean、install)打好的war包部署到Linux的Tomcat中本地访问部署好的项目 ...
自己写的一个简单shell脚本,可以自动删除tomcat原始的war包,然后自动把新的war包拷贝到tomcat下面,自动删掉应用程序进程,自动启动tomcat
总的来说,将一个Spring Boot应用打包成WAR并部署到Tomcat涉及多个层面的知识,包括Maven配置、Spring Boot特性、Tomcat部署以及数据库连接和集群配置。理解并掌握这些知识点对于任何Java开发者来说都是至关重要的。
开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径
在本场景中,我们关注的是如何使用 Jenkins 部署 WAR 包到 Tomcat 服务器,这是一个常见的 Java Web 应用部署流程。Tomcat 是一个流行的开源 Java Servlet 容器,用于运行基于 JSP 和 Servlet 的 Web 应用程序。 ...
标题中的“tomcat部署java项目jar”指的是在Apache Tomcat服务器上部署Java Web应用程序,通常以JAR(Java Archive)格式打包。Tomcat是一个开源的轻量级应用服务器,主要用于运行Servlet和JSP(JavaServer Pages)...
【Tomcat部署为每个应用分配不同端口】的实践与理解 在IT行业中,Tomcat作为流行的Java Servlet容器,常用于部署Web应用程序。部署过程包括安装应用到Tomcat服务器,通常分为静态部署和动态部署两种方式。 **静态...
### Spring Boot项目导出WAR包并部署到Tomcat遇到404错误的解析与解决方案 在实际开发过程中,经常会遇到将Spring Boot应用打包为WAR格式并部署至Tomcat服务器的需求。这种方式可以更好地与传统Java Web项目的部署...
Java 使用 Tomcat 部署 ...以上就是使用Java和Tomcat部署WAR文件涉及的关键知识点,包括Java环境、Tomcat服务器、数据库环境的设置、WAR文件的部署以及应用的验证。确保每个环节都正确无误,才能确保应用的顺利运行。
【标题】:Tomcat部署WAR源文件:SpringMVC应用 【描述】:在Java Web开发中,Tomcat是一款广泛使用的轻量级应用服务器,它能够运行Servlet和JSP应用程序。这里我们关注的是如何在Tomcat上部署一个名为"springmvc_...
一个最简单的war包,只有一个页面,用于做tomcat等的部署实验,页面输出SessionID、IP、Port和hostname。加入distributable属性,可用于tomcat集群。