springboot项目用war包部署在Tomcat上,并修改Tomcat默认端口 您所在的位置:网站首页 如何使用flashfxp发布war包 springboot项目用war包部署在Tomcat上,并修改Tomcat默认端口

springboot项目用war包部署在Tomcat上,并修改Tomcat默认端口

2024-06-30 00:21| 来源: 网络整理| 查看: 265

springboot项目内置Tomcat,直接打成jar包在dos下运行即可,但有时我们需要用war包以非内嵌Tomcat的方式来部署,以下是本人的实际经验

1.首先需要修改pom.xml文件

org.springframework.boot spring-boot-starter-tomcat provided org.apache.tomcat tomcat-servlet-api 7.0.42 provided

2.修改打包方式,将默认的jar包修改为war包

jar

3.修改启动类

//默认 @SpringBootApplication public class InquiryApplication { public static void main(String[] args) { SpringApplication.run(InquiryApplication.class, args); } } //修改为 @SpringBootApplication public class InquiryApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(InquiryApplication.class); } public static void main(String[] args) { SpringApplication.run(InquiryApplication.class, args); } }

然后maven打包即可。

打好的包会在项目目录下的target目录下,将其复制到tomcat的webapps目录下,然后配置server.xml

server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制。因此,学习server.xml文件的配置,对于了解和使用Tomcat至关重要。

说明:由于server.xml文件中元素与Tomcat中组件的对应关系,后文中为了描述方便,“元素”和“组件”的使用不严格区分

server.xml整体结构

该结构中只给出了Tomcat的核心组件,除了核心组件外,Tomcat还有一些其他组件,下面介绍一下组件的分类。

server.xml文件中的元素可以分为以下4类:

(1)顶层元素:和

元素是整个配置文件的根元素,元素则代表一个Engine元素以及一组与之相连的Connector元素。

(2)连接器:

代表了外部客户端发送请求到特定Service的接口;同时也是外部客户端从特定Service接收响应的接口。

(3)容器:

容器的功能是处理Connector接收进来的请求,并产生相应的响应。Engine、Host和Context都是容器,但它们不是平行的关系,而是父子关系:Engine包含Host,Host包含Context。一个Engine组件可以处理Service中的所有请求,一个Host组件可以处理发向一个特定虚拟主机的所有请求,一个Context组件可以处理一个特定Web应用的所有请求。

(4)内嵌组件:可以内嵌到容器中的组件。实际上,Server、Service、Connector、Engine、Host和Context是最重要的最核心的Tomcat组件,其他组件都可以归为内嵌组件。

下面将详细介绍Tomcat中各个核心组件的作用,以及相互之间的关系。

各个组件的详细介绍见 https://www.cnblogs.com/kismetv/p/7228274.html,此处不再做进一步的介绍

我们在端口冲突时,只需要修改组件的port即可,Service包含两个Connector:

(1)通过配置第1个Connector,客户端可以通过8080端口号使用http协议访问Tomcat。其中,protocol属性规定了请求的协议,port规定了请求的端口号,redirectPort表示当强制要求https而请求是http时,重定向至端口号为8443的Connector,connectionTimeout表示连接的超时时间。

在这个例子中,Tomcat监听HTTP请求,使用的是8080端口,而不是正式的80端口;实际上,在正式的生产环境中,Tomcat也常常监听8080端口,而不是80端口。这是因为在生产环境中,很少将Tomcat直接对外开放接收请求,而是在Tomcat和客户端之间加一层代理服务器(如nginx),用于请求的转发、负载均衡、处理静态文件等;通过代理服务器访问Tomcat时,是在局域网中,因此一般仍使用8080端口。

(2)通过配置第2个Connector,客户端可以通过8009端口号使用AJP协议访问Tomcat。AJP协议负责和其他的HTTP服务器(如Apache)建立连接;在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。之所以使用Tomcat和其他服务器集成,是因为Tomcat可以用作Servlet/JSP容器,但是对静态资源的处理速度较慢,不如Apache和IIS等HTTP服务器;因此常常将Tomcat与Apache等集成,前者作Servlet容器,后者处理静态资源,而AJP协议便负责Tomcat和Apache的连接。

因服务器上有其他项目,自己的项目上线时Tomcat默认的8080端口被占用,所以在服务器上再安装一个tomcat,然后修改config下的server.xml文件的各个端口,不要冲突即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有