参考资料:

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. TP5新增模块

    tp5模块自动生成 1build.php配置要生成的目录 <?php// +----------------------------------------------------------- ...

  2. RSA算法的C++string实现(模幂算法和欧几里得算法的使用)后附思路

    void resetNumA(string numAStr); //使用string重置numB void resetNumB(string numBStr); //将数组转换为字符串,用于输出 st ...

  3. PHP安装APC扩展,亲测成功

    1.在浏览器中输入https://pecl.php.net/package/APC选择安装包激进型下载.(可以选择Windows版本或者是Linux版本).注:以下是在Linux系统上进行操作!

  4. arm浮点运算

    首先总结一下计算机中的浮点数的存储. 浮点数的标准是IEEE-754,规定了浮点数的存储都是通过科学计算法来存储的,n2-e的表示. 浮点数首先分为,定浮点(fixed-point)和浮点(float ...

  5. Android配置AndroidAnnotations注解框架配置

    1在新建的普通项目里面,新建一个compile-libs文件夹,将下载来的androidannotation-xx.jar添加到compile-libs文件夹下,将androidannotation- ...

  6. [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件

    项目小组的几个成员都是学地下水和环境的,对于GIS懂得不是很多,于是把一些我们经常用到的mapgis实用小功能做成帮助文档,方便大家使用,发布共享! 1.整理好EXCEL文件(注意X,Y坐标的正确性( ...

  7. DataGridView 列排序 内存表查找

    DataRow[] drow = dt.Select("列名 = 列名的值" ); 就这句话,dt是一个datatable 且断点调试时能看到里面有trade这个列,可为什么执行到 ...

  8. 服务器被疑似挖矿程序植入,发现以及解决过程(建议所有使用sonatype/nexus3的用户清查一下)

    此次服务器被植入挖矿程序发现起来较为巧合,首先是上周三开始,我通过sonatype/nexus3搭建的仓库间歇性崩溃,但是每次重新start一下也能直接使用所以没有彻底清查,去docker logs里 ...

  9. linux 常用命令 和 nginx(反响代理、负载均衡)安装和配置

    (1)linux常用命令 [1]在光标前输入内容:i [2]删除输入方式下所输入的文本:Ctrl+u  [3]文件保存退出:wq [4]文件不保存退出:q [5]文件强制退出:q! [6]常规删除文件 ...

  10. Mask rcn nanchor部分理解

    Anchors Mask 生成锚框本质与SSD一样中心点个数等于特征层像素数框体生成围绕中心点Bbox的坐标是要归一化到0~1之间的,都是相对于输入图片的大小.基本生成方式:H乘np.sqrt(anc ...