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 下运行的攻略。

阅读剩余 54%

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

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

相关文章

  • Java的JSON格式转换库GSON的初步使用笔记

    下面对“Java的JSON格式转换库GSON的初步使用笔记”进行详细讲解。 GSON简介 GSON是谷歌开源的一款Java语言的JSON格式转换库。它能够将Java对象序列化为JSON格式的字符串,同时也能够将JSON格式的字符串反序列化为Java对象。GSON使用简单、高效、安全,广泛应用于Java开发中。 GSON的基本使用 在使用GSON之前,需要先引…

    Java 2023年5月26日
    00
  • Java Stream流之求和的实现

    下面是关于“Java Stream流之求和的实现”的完整攻略: 什么是Java Stream Java Stream 是 Java 8 的新增特性,它提供了一种非常高效、简洁优美的数据处理方式,可以方便地完成各种数据处理操作。 Stream 可以看作是一种 数据流(Stream) ,数据从一个管道(Stream) 中依次经过各种操作进行处理,最终得到目标结果…

    Java 2023年5月26日
    00
  • SparkStreaming整合Kafka过程详解

    SparkStreaming整合Kafka过程详解 1. 概述 本文将详细讲解使用SparkStreaming整合Kafka的过程,并附带两个示例。SparkStreaming是Spark旗下的一个流式处理框架,而Kafka是分布式消息中间件,二者的整合能够轻松实现实时数据的处理和分析。 2. 前置条件 在开始整合SparkStreaming和Kafka之前…

    Java 2023年5月20日
    00
  • Java字符串查找的三种方式

    Java字符串查找有多种方式,其中比较常见的有三种:indexOf()、lastIndexOf()和contains(),下面分别进行详细讲解。 使用indexOf()方法查找字符串 indexOf()方法将返回指定字符串在当前字符串中第一次出现的位置。该方法属于String类,它有多个重载版本,可以根据传入的参数来控制查找的起点和查找的方向。例如: Str…

    Java 2023年5月26日
    00
  • java检查数组是否有重复元素的方法

    当我们需要在 Java 中检测一个数组是否包含重复的元素时,有多种方法可以实现。本文将介绍一些常用的方法,包括暴力破解、利用 Set 和利用 Arrays 类的 sort() 方法等。下面将一一讲解这些方法的步骤。 1、暴力破解 暴力破解的思路非常简单:遍历整个数组,检查每一个元素是否和后面的元素重复。如果发现重复的元素,则返回 true。否则,该数组中就不…

    Java 2023年5月26日
    00
  • Spring AOP如何实现注解式的Mybatis多数据源切换详解

    让我为你详细讲解一下“Spring AOP如何实现注解式的Mybatis多数据源切换详解”。 1. 什么是Spring AOP Spring AOP是Spring框架中的一个重要子模块,用于实现面向切面编程,是一种方便、高效的编程方式。AOP(Aspect Oriented Programming)即面向切面编程是一种能够很好地与OOP(Object Ori…

    Java 2023年5月20日
    00
  • SpringMVC如何获取表单数据(radio和checkbox)

    获取表单数据是Web应用程序中最常见的任务之一。SpringMVC在处理表单数据方面提供了许多便捷的方法,包括获取单选框和复选框的值。 获取单选框的值 客户端可以在多个单选按钮之间进行选择。一组单选按钮被视为一组,必须具有相同的名称。SpringMVC在控制器中提供了几种方法来获取选定的单选按钮值。下面是两条示例说明: 示例1:使用@RequestParam…

    Java 2023年5月26日
    00
  • Java 定时器的多种实现方式

    Java 定时器的多种实现方式 前言 在 Java 开发中,我们经常需要编写定时任务,如定时备份、定时发送消息等。这些任务需要在指定时间点或时间间隔内执行。而实现这些定时任务的方法有多种,本文将一一介绍这些方式,包括 Java 内置定时器、定时线程池、Quartz 框架以及 Spring 自带的定时任务。 Java 内置定时器 Java 内置了一个 Time…

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