Tomcat项目部署方式
- 格式:doc
- 大小:29.50 KB
- 文档页数:2
tomcat概述Tomcat概述Tomcat是一个开源的Java Servlet容器,由Apache软件基金会开发和维护。
它实现了Java Servlet和JavaServer Pages(JSP)规范,并提供了一个HTTP Web服务器环境,可以让开发人员在其上部署和运行Java Web应用程序。
Tomcat是使用Java语言编写的,因此它可以在任何支持Java虚拟机(JVM)的平台上运行。
Tomcat的特点1. 开源免费:Tomcat是一款完全免费且开源的软件,任何人都可以自由地下载、使用和修改它。
2. 轻量级:Tomcat非常轻量级,只需要很少的系统资源就可以运行,并且它非常容易安装和配置。
3. 易于扩展:Tomcat提供了很多可定制的选项,使得开发人员可以根据自己的需要扩展和定制Tomcat的功能。
4. 稳定可靠:由于Tomcat经过了长时间的测试和改进,因此它非常稳定可靠,并且能够处理大量并发请求。
5. 安全性高:Tomcat提供了很多安全性选项,包括SSL/TLS加密、访问控制、认证等等,使得Web应用程序更加安全可靠。
6. 跨平台性强:由于Tomcat是使用Java语言编写的,因此它可以在任何支持Java虚拟机(JVM)的平台上运行,包括Windows、Linux、Mac OS等等。
Tomcat的架构Tomcat的架构分为三个层次:1. Web层:Web层是Tomcat最外层的一层,它负责处理HTTP请求和响应,并将请求转发给下一层进行处理。
2. Servlet/JSP容器层:Servlet/JSP容器层是Tomcat中间的一层,它负责管理Servlet和JSP组件,并将它们编译成可执行代码。
此外,Servlet/JSP容器还负责管理会话、Cookie、请求转发等功能。
3. 连接器/底层服务层:连接器/底层服务层是Tomcat最底部的一层,它负责处理网络连接和数据传输。
连接器/底层服务可以使用不同的协议来处理网络连接,比如HTTP、HTTPS、AJP等等。
使⽤maven的tomcat:run进⾏web项⽬热部署近期⼜⼜⼀次看了⼀下maven的东西,事实上主要是由于去了解Jenkins,后期或许会补充jenkins的博⽂。
1、⾸先来看⼀下maven tomcat插件:<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/dubbo-admin</path><uriEncoding>UTF-8</uriEncoding><finalName>dubbo-admin</finalName><server>tomcat7</server></configuration></plugin>2、配置jsp,servlet依赖什么的..<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>jsptags</groupId><artifactId>pager-taglib</artifactId><version>2.0</version><scope>provided</scope></dependency>⼀定须要以上的依赖。
部署准备1. 系统环境WINDOWS 2000 SERVER2. 数据库ORACLE9i3. 安装包JDK安装文件:j2sdk-1_4_2-windows-i586.exeTOMCAT 安装文件:jakarta-tomcat-5.0.28.exe数据库文件:v60c.dmp应用程序包:systemframe说明文本:readme.txt(注明导出数据库文件的服务名)部署实施一、配置JDK1. 安装JDK建议安装1.4.0以上版本的JDK,以配合5.0以上版本的TOMCAT。
以J2SDK1.4.2的安装为例,执行安装包中的J2SDK1.4.2安装程序,自定义路径,假定安装路径为:C:\j2sdk1.4.2。
以下环境变量配置过程中,变量值的设定均以此路径为准,实际安装时将其替换为实际安装路径。
2. 配置环境变量1)配置路径在桌面上或开始菜单中右键点击“我的电脑”图标=>点击“属性”=>选择“高级”页面=>点击“环境变量”按钮,如图1-1。
图1-1 系统属性-“高级”页面在环境变量窗口中点击系统变量中的“新建”按钮,新建一个环境变量;或者选中某个变量,点击“编辑”按钮,对该变量进行修改,如图1-2。
图1-2 环境变量窗口图1-3 编辑系统变量窗口2)添加环境变量(实施部署可以只配置第一个变量)如果已经安装过JDK,则查看环境变量中有没有上述变量。
如果没有或变量值跟上述不符,重新设置以上变量。
二、配置TOMCAT1. 安装TOMCAT运行安装包中TOMCAT5.0.28.exe,安装TOMCAT。
注意,如果使用TOMCAT5.5.9版本,需要JRE1.5。
按照提示运行安装程序,在安装类型的下拉菜单中选择“custom”,在窗口的安装树里选中Service,即作为Windows服务来运行。
TOMCA T图2-1 TOMCA T安装类型选择页面指定TOMCAT的安装目录,如图2-2,为了方便起见,这里选择安装在C:\tomcat5.0根目录下。
以下部署方式都是针对tomcat5.0以上版本。
Tomcat4中的Manager和Admin管理工具其实就是利用它来部署的。
在Tomcat5中提出了Context descriptor这个概念,且为其配置了一个专有目录,而不像Tomcat4那样大杂烩一般地放置在$appBase目录下。
Context descriptor是一个只包含Context元素的xml格式的部署文件,其中Context元素与server.xml中的Context元素配置相同。
对于一个给定的主机,Context descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下面。
Tomcat5默认安装时,在$CATALINA_HOME/conf/Catalina/localhost目录中有admin.xml和manager.xml,是两个管理工具的部署描述符文件。
而这两个文件在Tomcat4中是放置在$CATALINA_HOME/webapps目录下面的。
使用方法:(1)在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下新建xxx.xml文档(2)在xxx.xml文档中配置如下<Context docBase="${catalina.home}/server/webapps/host-manager"privileged="true" antiResourceLocking="false" antiJARLocking="false"> </Context>注:docBase也可以设置为[eclipse的workplace]/[project]/webroot静态部署是指在Tomcat运行之前就把相关的Web应用程序放置到合适的目录,在Tomcat启动的时候自动来部署这些应用程序。
SpringBoot打成war包引⼊外部配置⽂件部署Tomcat前⾔:Spring Boot因其特定的配置⽅式,受到了Java开发者们的热捧,成为了近年来最受欢迎的Java开发框架,当下的Coder如果要新创建项⽬,⾸选都是Spring Boot,⽽且与微服务有着完美的切⼊⼝。
Spring Boot中内置的Tomcat插件,使得开发者不需要进⾏额外的Tomcat配置,就可⼀键启动项⽬。
Spring Boot可以打包成jar或者war的形式部署,现在⽣产很⼤⼀部分也是通过打包成war包的形式去进⾏部署,Spring Boot项⽬也可以直接打包成可执⾏的jar或者war包,直接使⽤java -jar xx.jar/xx.war。
这种⽅式的话,Spring Boot项⽬的配置依赖之类的都在jar或war之内,如果需要更改配置,则需要从重新打包重启,不利于运维。
下⾯介绍如何将Spring Boot和配置分离打包成war,放⼊Tomcat中运⾏,引⼊外部配置。
前提条件:⼀个SpringBoot项⽬+Tomcat容器(我⽤的是8.5.53)1.先去除spring-boot-starter-web依赖中内置的tomcat容器<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring.boot.version}</version><!-- 移除嵌⼊式tomcat插件 --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>2.添加javax.servlet-api或者tomcat-servlet-api依赖<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency>3.修改项⽬默认启动⽅式,启动类继承SpringBootServletInitializer类重写configure()⽅法,也可以新建类继承SpringBootServletInitializer类重写configure()⽅法,两种⽅式如下分别如下展⽰启动类继承SpringBootServletInitializer类package com.xiaochun;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;/*** 启动类继承SpringBootServletInitializer,重写configure(SpringApplicationBuilder builder)⽅法,返回当前启动类*/@SpringBootApplicationpublic class XiaochunApplication extends SpringBootServletInitializer {public static void main(String[] args) {SpringApplication.run(XiaochunApplication.class, args);}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(XiaochunApplication.class);}}新建类继承SpringBootServletInitializer类package com.xiaochun;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;/*** 取代原先SpringBoot启动XiaochunApplication.main()⽅法启动整个项⽬的⽅式* 修改启动类,继承 SpringBootServletInitializer 并重写 configure ⽅法*/public class XiaochunStartApplication extends SpringBootServletInitializer {/*** 默认返回return super.configure(builder);* 现指向XiaochunApplication.main()启动⽅法* @param builder* @return*/@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {// return super.configure(builder);return builder.sources(XiaochunApplication.class);}}4.配置⽂件分离,在pom⽂件build标签中加⼊以下配置<resources><resource><directory>src/main/resources</directory><!--打包时排除src/main/resources下的所有以.properties .yml .xml为后缀的配置⽂件--><excludes><exclude>**/*.properties</exclude><exclude>**/*.yml</exclude><exclude>**/*.xml</exclude></excludes></resource></resources>5.创建外部配置⽂件xiaochun.properties,我把他放在D盘下,内容如下xiaochun.version=0.0.1.releasexiaochun.descriprtion=How to package SpringBoor project to war;6.使⽤EnvironmentPostProcessor实现程序启动时⾃动加载⾃定义属性⽂件,新建EnvironmentPostProcessorConfig类,指定外部配置⽂件绝对路径(全路径),内容如下package com.xiaochun.config;import com.xiaochun.enums.ResourcesEnum;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.env.EnvironmentPostProcessor;import org.springframework.core.env.ConfigurableEnvironment;import org.springframework.core.env.PropertiesPropertySource;import ponent;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/*** 配置启动监听器,⽤于加载外部配置⽂件*/@Componentpublic class EnvironmentPostProcessorConfig implements EnvironmentPostProcessor {private Logger logger = LoggerFactory.getLogger(this.getClass());public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {try { //ResourcesEnum为枚举类InputStream inputStream = new FileInputStream(ResourcesEnum.PROPERTIES_PATH.getPath());Properties properties = new Properties();properties.load(inputStream);PropertiesPropertySource propertiesPropertySource = new PropertiesPropertySource("my",properties);environment.getPropertySources().addLast(propertiesPropertySource);} catch (IOException e) {logger.error("读取⾃定义配置异常");}}}枚举类内容如下package com.xiaochun.enums;import lombok.Data;/*** 外部配置⽂件枚举类,外部配置⽂件path从这⾥获取*/public enum ResourcesEnum {PROPERTIES_PATH("全局配置⽂件", "D:\\xiaochun.properties");private String label;private String path;ResourcesEnum(String label, String path) {bel = label;this.path = path;}public String getLabel() {return label;}public String getPath() {return path;}}7.在resources下新建META-INF\spring.factories,⽂件内容为如下,⽤于指定项⽬启动的监听器,也就是上⼀步我们⾃定义的EnvironmentPostProcessorConfigorg.springframework.boot.env.EnvironmentPostProcessor=com.xiaochun.config.EnvironmentPostProcessorConfig8.打包成war放在tomcat容器的webapps⽬录下,启动tomcat9.启动tomcat,访问/home/index接⼝,验证我们刚配置的那些内容,接⼝内容如下package com.xiaochun.controller;import com.fasterxml.jackson.databind.util.JSONPObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.json.GsonJsonParser;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;import java.util.Map;@RestController@RequestMapping("/home")public class HomeController {private Logger logger = LoggerFactory.getLogger(this.getClass());@Value("${xiaochun.version}")private String version;@Value("${xiaochun.descriprtion}")private String description;@GetMapping("/index")public String index(){Map<String, Object> map = new HashMap<String, Object>();map.put("index", "index");map.put("version", version);map.put("description", description);return map.toString();}}访问结果如下可以看出,我们的配置是有效的,这样就可以实现不同的环境,我们只需要打包业务相关的代码,不需要去理会配置如何,同⼀个包,可在测试、⽣产等不同的环境部署。
web应⽤部署(Tomcat,springboot部署⽅式)核⼼内容1.在Tomcat中有四种部署Web应⽤的⽅式,分别是:(1)利⽤Tomcat⾃动部署(项⽬直接拷贝OR WAR包拷贝到webapps下)(2)利⽤控制台进⾏部署(tomcat的manager控制台的deploy区域)(3)增加⾃定义的Web部署⽂件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml)(4)⼿动修改%Tomcat_Home%\conf\server.xml⽂件来部署web应⽤2.SpringBoot WEB项⽬两种发布和部署⽅式(1)通过WAR包(2)通过JAR包(官⽹推荐)3.springboot有3中热部署⽅式:(1)使⽤springloaded配置pom.xml⽂件,使⽤mvn spring-boot:run启动(2)使⽤springloaded本地加载启动,配置jvm参数 -javaagent:<jar包地址> -noverify(3)使⽤devtools⼯具包,操作简单,但是每次需要重新部署1. Tomcat中有四种部署Web应⽤的⽅式第⼀种⽅式:利⽤Tomcat⾃动部署利⽤Tomcat⾃动部署⽅式是最简单的、最常⽤的⽅式。
若⼀个web应⽤结构为D:\workspace\WebApp\AppName\WEB-INF\*,只要将⼀个Web应⽤的WebContent级的AppName直接扔进%Tomcat_Home%\webapps⽂件夹下,系统会把该web应⽤直接部署到Tomcat中。
所以这⾥不再赘述。
第⼆种⽅式:利⽤控制台进⾏部署若⼀个web应⽤结构为D:\workspace\WebApp\AppName\WEB-INF\*,利⽤控制台进⾏部署的⽅式如下:进⼊tomcat的manager控制台的deploy区域——在Context path中键⼊"XXX"(可任意取名)——在WAR or Directory URL:键⼊D:\workspace\WebApp\AppName (表⽰去寻找此路径下的web应⽤)——点击deploy按钮。
Tomcat 7.0 安装部署教程
1.访问tomcat网站
/download-70.cgi
2.找到下载文件,点击下载,根据操作系统下载指定版本,本机用windows7 x64操作系统
3.下载后是apache-tomcat-7.0.79.exe文件。
4.然后我们进行安装,以管理员方式运行。
5. 6.
7.
8.
9.要先按照JRE6.0或JDK6.0以上版本
10.
11.
12.默认安装到C:\Program Files\Apache Software Foundation\Tomcat 7.0目录下
13.
14.
15.
16.怎样启动?通过bin/startup.bat命令运行Tomcat服务器(或通过小圆图标来启动)
17.
18.打开http://localhost:8080,如出现下图,表示安装成功了。
19.怎样管理,点击右边3个按钮,输入账号可以管理网站
20.安装好后,说明一下Tomcat安装完成后的目录
bin------存放启动和关闭的tomcat脚本
conf-----包含不同的配置文件
work----存放jsp编译后产生的class文件
webapp存放应用程序的目录
log-----存放日志文件
lib------存放tomcat所需要的jar文件
doc-----存放各种Tomcat文档
21.结束。
在Tomcat 中部署Web 项目在Tomcat 中部署Web 工程有多种方法,根据自己的经验,在这里描述下以下2 种方法:方法一、直接使用MyEclipse 开发工具来自动部署Web 工程。
具体步骤如下:首先添加Tomcat (我使用的是Tomcat5.0)服务器到MyEclipse 中来,如进入window->Preferences->MyEclipse->ApplicationServers->Tomcat -> Tomcat 5.x 右边页面,在Tomcat home directory 中添加Tomcat 安装目录,记住在Tomcat server 中一定要选择Enable,不然Tomcat 服务器是不能正常使用的。
,然后在Tomcat 5.x 目录下有一个JDK,点击进入后,添加相应的JDK 路径,点击OK,就行了。
第二、在MyEclipse 工作区,单击需要部署的工程,点击MyElipse- > Add web project Capabilities,为应工程自动添加到Tomcat 服务器中的webapp 中,这样,每次当修改某个文件后,只要刷新项目工程,则该工程的内容自动会部署到Tomcat 中的webapp 中。
方法二、使用xml 文件的配置来部署工程。
具体步骤如下:第一、进入Tomcat 安装目录下中的conf\Catalina\localhost 文件夹,里面正常来说有自带的三个.xml(admin.xml,balancer.xml.manager.xml),那么直接cpoy 其中的一个文件,并重装命名为自己想要的文件名(一般为工程名,或者工程名的简写)如:test.xml。
第二、进入test.xml,修改它里面的其中path 的值为文件名的值,也是通过URL 来访问项目工程的路径,这里是path="/test",docBase 为该工程的实际放置的物理路径,如:D:\java\text。
一、静态部署
1、直接将web项目文件件拷贝到webapps 目录中
Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。
所以可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。
一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。
具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。
也可以用cmd 命令:jar -cvf mywar.war myweb webapps这个默认的应用目录也是可以改变。
打开Tomcat的conf目录下的server.xml文件,找到下面内容:
<Host name="localhost" appBase="webapps"
unpackW ARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
将appBase修改即可。
2、在server.xml中指定
在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。
打开server.xml文件,在Host标签内建一个Context,内容如下。
在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加:
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"> </Context>
或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
说明:
path是虚拟路径;
docBase 是应用程序的物理路径;
workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;
debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet reloadable如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes 目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署
antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。
设置为true,Tomcat
在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
3、创建一个Context文件
在conf目录中,新建Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:
<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0"
privileged="true"></Context>
tomcat自带例子如下:
<Context docBase="${catalina.home}/server/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。
4、注意:
删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。
二动态部署
登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。
在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。
XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml 文件,内容如下:<Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。
或者更简单点,这个文本框什么都不填,在W AR or Directory URL:中键入F:\hmcx 即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。
如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。