- pom文件排除tomcat依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- war 部署所需,排除tomcat。调试时注释掉 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> -
添加sevlet依赖。
<!-- 打包war时添加servlet依赖,调试时注释掉 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> -
如果使用websocket需要添加websocket依赖。
<!-- 打包war时添加websocket依赖,调试时注释掉 --> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.1</version> </dependency> -
添加启动类SpringBootStartApplication,需要继承SpringBootServletInitializer类,重写configure方法,返回主启动类。
/** * war部署时用到,必须的 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 返回主启动类 return builder.sources(MainApplication.class); } }
-
如果使用到websocket的话,需要将WebSocketConfig类注释掉,因为tomcat下不需要这个配置,否则会出错。
/** * 开启WebSocket支持 */ //@Configuration //public class WebSocketConfig { // // @Bean // public ServerEndpointExporter serverEndpointExporter() { // return new ServerEndpointExporter(); // } // //} -
springboot2.0以上需要使用tomcat9以上的版本,不要使用tomcat8。否则会出错。
-
Idea下可以先配置tomcat测试,测试通过,再打war包即可。

-
如果不配置好maven路径,则不会出现Maven Project菜单。

-
项目在根目录运行,地址为http://localhost:port。
最简单的方法: 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。 还有其他2种方法,请参考文章:https://my.oschina.net/u/178116/blog/373498
Springboot打包war需要注意的几点
最新推荐文章于 2024-03-18 15:15:14 发布
本文介绍了Springboot打包war文件时的关键步骤,包括在pom.xml中排除内置Tomcat依赖,添加Servlet和WebSocket依赖。同时,需注意启动类需继承SpringBootServletInitializer并重写configure方法,针对使用WebSocket的情况需特别处理WebSocketConfig。Springboot 2.0及以上版本需搭配Tomcat 9+,避免使用Tomcat 8导致错误。在Idea中,可以先用Tomcat测试,没问题后再打war包。确保正确配置Maven路径,项目运行在根目录,访问地址为http://localhost:port。
9918

被折叠的 条评论
为什么被折叠?



