软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot项目如何打war包问题详解

SpringBoot项目如何打war包问题详解

作者:liucy007  发布时间:2023-06-07 08:33:47 

标签:SpringBoot,打war包

1、pom.xml配置修改


<packaging>jar</packaging>
//修改为
<packaging>war</packaging>

2、pom文件添加如些依赖


<!--添加servlet-api的依赖,用来打war包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>

3、排除springboot内置的tomcat干扰


<!--最终打成war包,排除内置的tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

4、改造启动类

如果是war包发布,需要增加SpringBootServletInitializer子类,并重写其configure方法,
或者将main函数所在的类继承SpringBootServletInitializer,并重写configure方法
当时打包为war时上传到tomcat服务器中访问项目始终报404错就是忽略了这个步骤!!!

改造之前:


@SpringBootApplication
public class MainApp {
public static void main(String[] args) {
SpringApplication.run(MainApp.class,args);
}
}

改造之后:


@SpringBootApplication
public class SpringBootMytestApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringBootMytestApplication.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(SpringBootMytestApplication.class);
}
}

这种改造方式也是官方比较推荐的方法

5、pom文件中不要忘了maven编译插件


<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

打包操作:

SpringBoot项目如何打war包问题详解
SpringBoot项目如何打war包问题详解

war包打包成功。

如果想用idea中的外置tomcat验证war包是否正常,方法如下:

SpringBoot项目如何打war包问题详解

SpringBoot项目如何打war包问题详解
SpringBoot项目如何打war包问题详解

SpringBoot项目如何打war包问题详解

如果不改成“/” 访问时路径前要加上此路径内容,如下图。

SpringBoot项目如何打war包问题详解
SpringBoot项目如何打war包问题详解

验证成功

来源:https://blog.csdn.net/liucy007/article/details/116711426

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com