参考资料:

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就行了

springBoot 项目war包部署及改为war包后资源路径错误问题的更多相关文章

  1. Eclipse中创建新的SpringBoot项目(打包并且部署到tomcat)

    Spring-boot因为其对jar包的高度集成以及简化服务配置,快速部署等的优点,逐渐成为Java开发人员的热衷的框架.下面演示一下怎么在Eclipse中新建Spring-boot项目以及打包部署. ...

  2. SpringBoot项目设置热部署

    记录一个SpringBoot 设置热部署(修改项目之后,项目自动重启)实例 POM.XML 文件 <!-- 配置springBoot项目的热部署启动 --> <dependency& ...

  3. 基于Maven的SpringBoot项目实现热部署的两种方式

    转载:http://blog.csdn.net/tengxing007/article/details/72675168 前言 JRebel是JavaEE中比较流行的热部署插件,可快速实现热部署,节省 ...

  4. Jenkins 集成Maven打包SpringBoot项目并自动部署到Tomcat服务器

    提前条件: 1.在Jenkins服务器上安装Git.JDK和Maven 2.准备另一台服务器并安装Tomcat 3.Gitlab服务器 4.Gitlab仓库中上传SpringBoot项目代码 第一步, ...

  5. jenkins+maven+svn实现springboot项目的自动化部署过程

    说明:部署springboot项目的jar 前提(参考:https://www.cnblogs.com/myitnews/p/11493779.html): 全局安全配置(前面配置过) 全局工具配置( ...

  6. springboot 项目 docker化部署

    最近公司项目需要docker化,项目所使用的框架是springboot,linux环境.第一次接触docker化方面的技术.做的时候,所接触的新知识比较多,留下此文,以便以后用到的时候快速入手. 修改 ...

  7. idea设置项目【非springboot项目】热部署

    1.首先打开Edit Configurations 或者 2.添加的项目一定是war: exploded,而不是war 3.server这边,On 'Update' action选Redeploy,O ...

  8. idea中springboot项目设置热部署

    技术交流群:816227112 File-Settings-Compiler-Build Project automatically ctrl + shift + alt + /然后选择Registr ...

  9. meavn项目由打包方式jar改为war报Cannot install Dynamic Web Module 2.5 facet. It is incompatibile with already installed facets: Utility Module. Please modify project configuration.处理方式

    找到  \项目名\.setting\文件夹下的   org.eclipse.wst.common.project.facet.core.xml  xml文件. 添加或修改 <installed ...

随机推荐

  1. react使用create-react-app创建的项目部署

    一.在所有的项目代码编写完成后,react项目直接部署是无法正常访问的 1.问题一 网页无法正常的浏览器刷新,刷新会报404错,路由找不到页面 2.问题二 路由跳转后,浏览器后退按钮点击后,页面不刷新 ...

  2. 第九届蓝桥杯C/C++B组省赛感想

    因为做了近三年的初赛题,都对了5题+,所以这次比赛前信心满满,心里想最少水个省二没问题.可我怎么知道今年的套路居然和以前不一样了!一题深搜都没有,想想一周前做的第七届初赛题,10题有3.4题深搜题. ...

  3. Fiddler抓包【4】_重定向AutoResponder

    1. 文件及图片替换(Enable rules) 目的:允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器[可用正式环境验证本地文件] 步骤一:抓页面http://ir.baidu.com/ ...

  4. java操作Maven

    记录瞬间 import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import ...

  5. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

  6. nist-sha

    nist目前支持的sha运算,sha1系列,输出mac160bit. sha2系列,支持sha2-224,sha2-256,sha2-384,sha2-512,sha2-512/224,sha2-51 ...

  7. elasticsearch开机启动脚本

    最近搭建了一个elasticsearch服务,其中机器重启而ES服务没有重启是问题,就有下面的脚本 #!/bin/sh #chkconfig: #description: es export JAVA ...

  8. Log4j介绍与使用

    Log4j三大组件 1) 日志记录器Logger负责输出日志信息,并能够对日志信息进行分类筛选,决定哪些日志信息应该被输出,哪些该被忽略.Loggers组件输出日志信息时分为5个级别:DEBUG.IN ...

  9. Qt3D

    ---------------------------------------------- 概述 - 请阅读QtHelp: Qt 3D Overview https://www.kdab.com/o ...

  10. LoadXml 加载XML时,报错:“根级别上的数据无效。 行1,位置1“

    ==XML=================================== <?xml version="1.0" encoding="utf-8" ...