美文网首页
SpringBoot使用外置tomcat容器部署

SpringBoot使用外置tomcat容器部署

作者: 雪味伦调 | 来源:发表于2018-09-13 12:53 被阅读0次

    springboot默认内嵌有tomcat,所以可以不依赖外部的tomcat容器,直接打成jar包,运行即可。但实际开发中更多的可能需要多个项目使用同一个tomcat容器,此时,需要将springboot项目打为war包而不再是jar包。springboot提供了以下步骤来做修改。
    本文使用gradle作为springboot的构建工具。

    1. 修改项目的启动类

    1. 启动类继承SpringBootServletInitializer
    2. 重写configure方法
    3. 在入口函数中启动项目
    
    @SpringBootApplication
    public class ServletInitializer extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(ServletInitializer.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(ServletInitializer.class, args);
        }
    
    }
    

    2. gradle中配置打为war包

    apply plugin: 'war'
    

    3. provided方式依赖内置的tomcat

    provided('org.springframework.boot:spring-boot-starter-tomcat')
    

    以上3步,即可完成打为war包。

    注意事项

    我在打完war包部署到服务器后,发现并不能正常访问借口拿到数据,所有接口会报404的错误。原因是请求前缀的问题,在springboot中,可以手动配置请求前缀,不会受打包包名的影响,但在在外置tomcat容器中,请求的项目路径是会受到打包的包名影响的,例如在springboot中配置前缀为[[snowson]],则请求的url为

    http://域名/snowson/具体接口
    

    无论打包的包名是什么。而在外置tomcat中,若打包报名为snowson_main,正确的访问路径为

    http://域名/snowson_main/具体接口
    

    所以,最好是打出预期接口路径的报名,避免不必要的错误。

    相关文章

      网友评论

          本文标题:SpringBoot使用外置tomcat容器部署

          本文链接:https://www.haomeiwen.com/subject/yrdwgftx.html