如今,使用注解之类的工具来开发Spring Boot应用程序已经变得很容易了,并且可以将其初始化为Maven,Spring Boot和嵌入式服务器。
因此,正如我们的日常,在构建Spring Boot应用程序时,默认情况下,我们将该应用程序打包到一个JAR文件中,并将主要应用程序类执行到一个主要的嵌入式tomcat服务器中。然后,就可以在环境中运行应用测试。
如果我们要使应用程序服务器独立并将应用程序放置在现有服务器(如Weblogic,Jboss,Wildfly等)上怎么办?
为此,就必须使我们的应用程序成为WAR文件。
这样做的简单步骤如下:
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文件功能
通常,由于某些容器无法部署破折号版本,所以都是从构建文件中删除版本号。这可以说是一个小技巧,希望对你能有用哦。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。