Springboot打包war需要注意的几点

本文介绍了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。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 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>

     

  2. 添加sevlet依赖。
     

    		<!-- 打包war时添加servlet依赖,调试时注释掉 -->
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>javax.servlet-api</artifactId>
    			<version>3.1.0</version>
    			<scope>provided</scope>
    		</dependency>

     

  3. 如果使用websocket需要添加websocket依赖。
     

            <!-- 打包war时添加websocket依赖,调试时注释掉 -->
    		<dependency>
    			<groupId>javax.websocket</groupId>
    			<artifactId>javax.websocket-api</artifactId>
    			<version>1.1</version>
    		</dependency>

     

  4. 添加启动类SpringBootStartApplication,需要继承SpringBootServletInitializer类,重写configure方法,返回主启动类。

    /**
     * war部署时用到,必须的
     */
    
    public class SpringBootStartApplication extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            // 返回主启动类
            return builder.sources(MainApplication.class);
        }
    
    }


     

  5. 如果使用到websocket的话,需要将WebSocketConfig类注释掉,因为tomcat下不需要这个配置,否则会出错。
     

    /**
     * 开启WebSocket支持
     */
    //@Configuration
    //public class WebSocketConfig {
    //
    //    @Bean
    //    public ServerEndpointExporter serverEndpointExporter() {
    //        return new ServerEndpointExporter();
    //    }
    //
    //}

     

  6. springboot2.0以上需要使用tomcat9以上的版本,不要使用tomcat8。否则会出错。

  7. Idea下可以先配置tomcat测试,测试通过,再打war包即可。

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

  9. 项目在根目录运行,地址为http://localhost:port。
     

    最简单的方法:
    删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。
    
    还有其他2种方法,请参考文章:https://my.oschina.net/u/178116/blog/373498
    

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值