- 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需要注意的几点
最新推荐文章于 2025-03-19 20:08:56 发布
