Tomcat本地部署SpringBoot项目

一、打包为war

相对于打包出jar,打包为war会复杂点:

Maven的pom.xml里设置:

XML 复制代码
<packaging>war</packaging>

然后,在spring-boot-starter-web依赖节点中移除tomcat相关外部包:

XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

在依赖包内添加Servlet的包:

XML 复制代码
<!--        打包成war包,添加Servlet依赖-->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>9.0.43</version>
</dependency>

二、打包

1、如果你的项目是Spring项目,需要设置启动主类SpringBootServletInitializer,创建一个SpringBootStartApplication类,同时继承SpringBootServletInitializerl类:

java 复制代码
public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(ToolApplication.class);
    }
}

2、使用maven的clean、package将项目打包为war包

当然,你也可以直接到项目目录下,使用Maven命令打包:

XML 复制代码
mvn clean
mvn package

三、配置Tomcat

1、将刚刚打包好的.war文件,上传到tomcat里的/webapps内

2、配置server.xml文件

XML 复制代码
<Service name="Catalina">
    <!-- 每个项目的端口号也要进行区分,保证不被占用 -->
    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
    <!-- 这里的AJP端口同样也要进行区分 -->
	<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            <!-- 这里是想要部署的对应项目的名称 -->
		    <Context docBase="D:\class\JavaWeb\tomcat\apache-tomcat-8.5.46\webapps\ruoyi-admin" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>

path:你希望用什么访问地址到你项目文件

docBase:项目地址(可以是绝对路径,也可相对路径)

保存,退出即可。

四、启动Tomcat

启动终端进入Tomcat的bin目录然后直接执行startup.bat命令

直接浏览http://localhost:8080/ruoyi-admin

相关推荐
Wang's Blog11 分钟前
Java框架快速入门: Spring Security+OAuth2之自动化集成测试
java·spring·自动化
Sylvia33.24 分钟前
板球实时数据接入实战:从Frames模型到多赛制适配
java·python·websocket·网络协议·架构
Zzzzmo_28 分钟前
SpringBoot 日志
java·spring boot·spring
hai_android32 分钟前
Android JNI 示例详解:Java 与 C++ 互调演示
android·java
geovindu34 分钟前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
yimindev40 分钟前
从 BI 到 Agent:我如何用 Java 打造一个轻量级数据库语义网关 DatI
java
计算机毕设定制辅导-无忧学长42 分钟前
《基于SpringBoot的家政服务管理平台的设计与实现》
java·vue.js·spring boot·计算机毕业设计选题推荐·家政服务管理平台
秋饼43 分钟前
Spring AI 2.0 企业级文档ETL实战:从 DocumentReader 到 EmbeddingStore 的完整知识库数据管道
java·ai·技术分享·后端开发
吃饱了得干活1 小时前
Spring Boot + Redis 分布式锁:一个订单重复提交引发的六次迭代
java·redis·后端
xiaoqiMikko1 小时前
pom 里没有、代码里没调过,但 WebClient 默认用的就是 netty-resolver-dns
java·spring boot