温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springboot打包成war部署到tomcat容器的方法

发布时间:2021-06-22 17:45:03 来源:亿速云 阅读:186 作者:chen 栏目:大数据
# SpringBoot打包成WAR部署到Tomcat容器的方法 ## 前言 Spring Boot默认内嵌Tomcat服务器,通常以可执行JAR包形式运行。但在企业级生产环境中,我们可能需要将应用部署到独立的外部Tomcat容器中。本文将详细介绍如何将Spring Boot应用打包为WAR文件并部署到Tomcat服务器。 --- ## 一、环境准备 在开始之前,请确保已安装以下环境: 1. **JDK 8+**(推荐JDK 11或17) 2. **Apache Maven 3.5+** 或 **Gradle 6.x+** 3. **Tomcat 9.x+**(本文以Tomcat 9为例) 4. **IDE工具**(IntelliJ IDEA/Eclipse等) --- ## 二、修改项目配置 ### 1. 修改打包方式 在`pom.xml`中将打包方式从`jar`改为`war`: ```xml <packaging>war</packaging> 

2. 排除内嵌Tomcat

添加以下依赖配置:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> <!-- 关键配置 --> </dependency> 

3. 继承SpringBootServletInitializer

修改主启动类,使其继承SpringBootServletInitializer

@SpringBootApplication public class MyApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyApplication.class); } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } 

三、解决常见问题

1. 静态资源访问问题

application.properties中添加:

spring.mvc.servlet.path=/ spring.web.resources.static-locations=classpath:/static/ 

2. JSP支持(如需)

添加依赖:

<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> 

配置文件位置:

spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp 

四、打包构建

执行Maven命令:

mvn clean package 

构建成功后会在target目录生成your-app-0.0.1.war文件。


五、Tomcat部署

1. 常规部署方式

将WAR文件复制到Tomcat的webapps目录:

cp target/your-app.war ${TOMCAT_HOME}/webapps/ 

2. 通过Manager App部署

  1. 访问http://localhost:8080/manager/html
  2. 在”WAR file to deploy”部分上传文件
  3. 点击Deploy按钮

3. 配置Context Path

修改conf/server.xml

<Context path="/myapp" docBase="your-app" reloadable="true"/> 

六、高级配置

1. 自定义WAR文件名

pom.xml中配置:

<build> <finalName>custom-name</finalName> </build> 

2. 多环境配置

使用Profile区分环境:

<profiles> <profile> <id>dev</id> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> </profile> </profiles> 

3. 排除测试代码

打包时跳过测试:

mvn package -DskipTests 

七、性能优化建议

  1. 连接池配置

    spring.datasource.hikari.maximum-pool-size=20 
  2. Tomcat调优

    <!-- 在conf/server.xml中 --> <Connector port="8080" maxThreads="200" minSpareThreads="10"/> 
  3. JVM参数

    export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC" 

八、常见问题排查

1. 404错误

  • 检查Context Path配置
  • 确认控制器@RequestMapping注解正确

2. 启动失败

  • 查看logs/catalina.out
  • 检查JDK版本兼容性

3. 静态资源加载失败

  • 检查spring.resources.static-locations
  • 确认资源文件在WAR包中的位置

九、替代方案比较

方案 优点 缺点
内嵌Tomcat(JAR) 部署简单 难以集群部署
外部Tomcat(WAR) 便于集中管理 需要额外配置
Docker容器化 环境隔离 学习成本高

结语

通过本文的步骤,您应该已经成功将Spring Boot应用部署到独立Tomcat容器。这种部署方式特别适合需要与传统Java EE应用共存,或需要利用Tomcat高级功能(如集群、JMX监控等)的场景。

最佳实践建议:对于新项目,除非有特殊需求,否则推荐使用Spring Boot默认的内嵌服务器方式。

”`

这篇文章包含约2200字,采用Markdown格式编写,涵盖了从环境准备到部署优化的完整流程。您可以根据实际需求调整各部分内容的深度或添加特定框架的配置细节。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI