zoukankan      html  css  js  c++  java
  • springBoot 项目war包部署及改为war包后资源路径错误问题

    参考资料:

            https://blog.csdn.net/rico_zhou/article/details/83415114

            https://blog.csdn.net/pz641/article/details/85029431

            https://blog.csdn.net/m0_37981898/article/details/82155912

    因为一些特殊需要,要将springboot 项目由jar包改为war包发布,记录实现的过程和出现的问题:

      1. 首先,将pom.xml中打包配置改成war

         

    2. springboot中自带tomcat,打jar包会用这个tomcat启动,我们需要打包的时候排除这个自带的tomcat,有两种方式(以下图片来自网络(自己实在不想截图了..))

        方式一:

               

     方式二:  建议使用

                     

    3. 更改启动类,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去, 注意: 此类需要放在Application启动类同级目录

    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
    
    /**
     * springboot 项目打成war包访问,初始化启动Spring应用上下文
     * @author qxl
     *
     */
    public class SpringBootStartApplication extends SpringBootServletInitializer {
        
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Application.class);
        }
    
    }

        4. 打war包发布,两种方式

          方式一 :  执行:mvn clean package ,打包结束后即可在target文件夹中找到war包,或者在eclipse中右击项目>Run as>Maven install打包结束同样在target目录下找到war

          方式二 :   idea 工具导出war包

      5. 部署到 tomcat, springBoot不同版本内置tomcat版本是不一样的(下面的图也是截的别人的),这里建议使用8.5以上版本

         

       将项目部署到tomcat后启动,项目是可以启动的,但是很多资源文件失效找不到了,原因是tomcat启动项目,需要带上项目名,之前jar包访问资源路径没有项目名,导致资源路径错误

       解决方案有两种: (注意,以下两种方式一定要删除ROOT文件夹,否则会有问题)

        一 : 模拟Tomcat启动页面,替换 ROOT文件夹

              将webapps目录下的ROOT文件夹删除,将自己的war包更名为ROOT.war,重新启动tomcat,浏览器中输入localhost:8080即可访问

             

       二 :  修改tomcat配置,不需要项目名访问,还是需要先删除ROOT文件夹

                修改conf目录下server.xml

                 

               修改host内容,将

                      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 

               改为 : 

                   <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true">

                   <Context docBase="webapps/你的项目名" path="" reloadable="true" source="org.eclipse.jst.jee.server:你的项目名"/>

              如下图,改之前:

                

               改之后:(vrs为项目名称)

                   

                     修改好之后运行tomcat,可以不需要项目路径访问项目,也就是说访问 http://localhost:8080就行了

            

       

         

            

        

  • 相关阅读:
    Spring Boot邮件功能
    jenkins自动部署
    spring boot定时任务解析
    类的加载classload和类对象的生成
    排序算法
    Robbin负载均衡
    ActiveMQ消息中间件
    hystrix熔断器
    css3整理--calc()
    css3整理--media
  • 原文地址:https://www.cnblogs.com/huaixiaonian/p/10521460.html
Copyright © 2011-2022 走看看