SpringBoot打成war包在tomcat或wildfly下运行的方法

下面是讲解 Spring Boot 打成 WAR 包以及在 Tomcat 或 Wildfly 上运行的详细攻略:

1. Spring Boot 打成 WAR 包

Spring Boot 默认情况下是以嵌入式 Tomcat 启动的,如果我们希望将 Spring Boot 应用部署到外部 Tomcat 或 Wildfly 中,我们可以将其打包成 WAR 包。

1.1 引入依赖

在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.0</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <version>2.5.5</version>
    <scope>provided</scope>
</dependency>

第一个依赖是 SERVLET 的 API,第二个依赖是 Spring Boot 的 Tomcat Starter。

注意,第二个依赖的 scope 要设置为 provided,这是因为我们打包成 WAR 包时,外部 Tomcat 或 Wildfly 会提供 Servlet 和 Tomcat 的实现,不需要将这些实现打包到 WAR 包中。

1.2 修改启动类

要将 Spring Boot 应用打包成 WAR 包,需要将应用的启动方式更改为 WAR。

在启动类中添加以下代码:

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

其中,继承了 SpringBootServletInitializer 并实现其 configure 方法。

1.3 打包

在 Terminal 中使用 maven 命令将应用打包成 WAR 包:

mvn package

确定 WAR 包已经生成,位于项目的 target 文件夹下。

2. 部署 WAR 包

2.1 部署到 Tomcat

首先,需要在 Tomcat 中手动创建一个应用,这里以应用名称为 ROOT 为例:

  1. 将 WAR 包移动到 Tomcat 的 webapps 目录下:

bash
mv target/{war包名}.war $CATALINA_HOME/webapps/ROOT.war

  1. 启动 Tomcat,等待应用部署。

bash
$CATALINA_HOME/bin/startup.sh

  1. 在浏览器中访问 http://localhost:8080,应该能够看到应用已经正常运行。

2.2 部署到 Wildfly

首先,需要在 Wildfly 中手动创建一个应用,这里以应用名称为 ROOT 为例:

  1. 将 WAR 包移动到 Wildfly 的 deployments 目录下:

bash
mv target/{war包名}.war $JBOSS_HOME/standalone/deployments/ROOT.war

  1. 启动 Wildfly,等待应用部署。

bash
$JBOSS_HOME/bin/standalone.sh

  1. 在浏览器中访问 http://localhost:8080,应该能够看到应用已经正常运行。

以上既是 Spring Boot 打成 WAR 包在 Tomcat 或 Wildfly 下运行的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot打成war包在tomcat或wildfly下运行的方法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 基于maven搭建一个ssm的web项目的详细图文教程

    下面是基于Maven搭建SSM(Web)项目的详细攻略: 前置条件 JDK 1.8+ 安装并配置好环境变量 Maven 安装并配置好环境变量 IDE,比如 IntelliJ IDEA 或 Eclipse 等可选 步骤一:创建Maven项目 打开IDE,选择创建Maven项目 选择Maven-archetype-webapp模板,输入项目信息,点击创建 步骤二…

    Java 2023年5月19日
    00
  • Mybatis Lombok使用方法与复杂查询介绍

    Mybatis Lombok使用方法 Mybatis Lombok是一种可以自动生成Java Bean的Mybatis插件,可以让我们通过注解自动生成Java的Setter,Getter,toString等方法,让我们在编写Java Bean时,更加快捷和简便。 安装 在使用Mybatis Lombok之前,我们需要在Maven或Gradle中添加Mybat…

    Java 2023年5月20日
    00
  • jdk1.8 LocalTime、LocalDate、LocalDateTime 使用大全

    目录 LocalTime、LocalDate、LocalDateTime 区别 LocalTime、LocalDate、LocalDateTime 使用 now 获取当前 时刻、日期、时间 of 获取指定 时刻、日期、时间 plus || minus 增加或者减少 更改指定的 时间 isAfter || isBefore 比较大小 compareTo 时间比…

    Java 2023年4月22日
    00
  • 快速搭建一个SpringBoot项目(纯小白搭建教程)

    让我以标准的markdown格式文本,详细讲解“快速搭建一个SpringBoot项目(纯小白搭建教程)”的完整攻略。 快速搭建一个SpringBoot项目(纯小白搭建教程) SpringBoot是一个快速构建基于Spring框架的应用程序的工具。它可以简化Java程序开发的复杂度,使得开发人员可以更加专注于业务逻辑的实现。在这里,我将为大家介绍如何简单快速地…

    Java 2023年5月15日
    00
  • SpringBoot关于自定义注解实现接口幂等性方式

    对于SpringBoot自定义注解实现接口幂等性,一般可以通过以下几个步骤来完成: 1. 创建幂等性注解 幂等性注解一般包含以下内容: 注解名称:一般用 @Idempotent 表示。 作用范围:一般有方法级别和参数级别两种。 验证方式:一般有请求参数和请求头两种。 具体实现示例: @Target({ElementType.METHOD, ElementTy…

    Java 2023年5月20日
    00
  • java实现数字炸弹

    Java实现数字炸弹是一种常见的编程练习,主要是为了训练学生对于递归算法的理解和运用能力,以下是数字炸弹的完整攻略: 什么是数字炸弹? 数字炸弹指的是在一个数字序列中寻找出现次数最高的数字,并将出现次数最高的数字从序列中删除,接着重复以上步骤,直到序列为空。 怎样实现数字炸弹? 1. 将数字序列分解为数字数组 在Java中,我们可以将数字序列转化为数字数组,…

    Java 2023年5月23日
    00
  • 一次线上websocket返回400问题排查的实战记录

    以下是“一次线上websocket返回400问题排查的实战记录”的完整攻略: 问题描述 我们的网站中有一个websocket服务,用于向前端推送实时数据。最近我们收到了一些用户投诉说无法连接websocket服务,并返回了400错误。我们需要排查这个问题并解决它。 问题分析 websocket连接返回400错误一般有以下几种可能的原因: URL路径错误 跨域…

    Java 2023年5月19日
    00
  • java实现上传文件到oss(阿里云)功能示例

    下面我会详细讲解Java实现上传文件到OSS(阿里云)功能的完整攻略。 1. 了解OSS OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它是面向Internet应用设计的分布式存储服务,支持RESTful API,可以在任何时间、任何地点、任何互联网设备上进行上传、下载、管理和分享数据。 2. J…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部