如今,使用注解之类的工具来开发Spring Boot应用程序已经变得很容易了,并且可以将其初始化为Maven,Spring Boot和嵌入式服务器。

因此,正如我们的日常,在构建Spring Boot应用程序时,默认情况下,我们将该应用程序打包到一个JAR文件中,并将主要应用程序类执行到一个主要的嵌入式tomcat服务器中。然后,就可以在环境中运行应用测试。

如果我们要使应用程序服务器独立并将应用程序放置在现有服务器(如Weblogic,Jboss,Wildfly等)上怎么办?

为此,就必须使我们的应用程序成为WAR文件。

从Jar到War部署Spring Boot应用程序

这样做的简单步骤如下:

1.通过以下更改更新maven pom.xml

将包装标签设置为war

 <packaging>war</packaging>

将所有Tomcat Jar文件设置为provide

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

然后,还需要更新maven-war-plugin,如果web.xml丢失则不会失败。可以通过更新build标记中的插件信息并通过删除org.springframework.boot pom中的插件来完成此操作,如下所示:

<plugins>
            <!--  <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            -->
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <id>default-war</id>
                    <phase>prepare-package</phase>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        </plugins>

2.更新Main类以 扩展
SpringBootServletInitializer

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

3.将文件
SpringBootWarDeployment-0.0.1.war 重命名为所需的名称springrestapi.war。

4.检查服务器是否缺少web.xml文件功能

通常,由于某些容器无法部署破折号版本,所以都是从构建文件中删除版本号。这可以说是一个小技巧,希望对你能有用哦。


妙蛙种子
4 声望1 粉丝