参考资料:

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. JDBC(Java Data Base Connectivity,java数据库连接)

    JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言 ...

  2. visual studio 中被遗忘的任务列表和书签

    任务列表(Task List)是VS中被人遗忘的一个功能,用到跳转到不同的代码段非常不便.以后就不用每次前进和后退导航了. 使用“任务列表” 跟踪使用 TODO 和 HACK或自定义令牌等令牌的代码注 ...

  3. github仓库的初步使用

    github是被戏称为男人们的朋友圈,在github里可以很方便的和同伴合作.以下是github初步建立的步骤.(由于我已经安装好了,所有没有插入图片,如果有未降到的问题先自行百度,如果我后续碰到有关 ...

  4. talend工具中往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG colum

    今天使用talend往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG column 数据源是mysql,开 ...

  5. 从拥抱开源到回馈开源,灵雀云助力CNCF中国区培训业务

    6月27日,全球首屈一指的开源盛会 2018 LinuxCon + ContainerCon + CloudOpen China (LC3)在中国北京国家会议中心落下帷幕.二度落地中国的LC3大会热度 ...

  6. php中yaf框架的服务器配置

    1  yaf 扩展 wget http://pecl.php.net/get/yaf-3.0.4.tgz /usr/local/php/bin/phpize ./configure --with-ph ...

  7. Gem install Mysql2的问题

    运行 ‘bundle install’ 或者 ‘gem install mysql2′ 遇到如下错误 > gem install mysql2 ERROR: Error installing m ...

  8. Saiku资源帖

    一.精选 1.李秋 随笔分类 - pentaho 二.概述 1.Saiku + Kylin 多维分析平台探索 三.Saiku+Kylin 1.使用Saiku+Kylin构建多维分析OLAP平台 2.使 ...

  9. Linux基础命令---mpstat显示cpu使用

    mpstat mpstat指令用来显示cpu的使用状况,将内容显示到标准输出.处理器0是第一个.还报告了所有处理器之间的全球平均活动.mpstat命令既可以在SMP机器上使用,也可以在UP机器上使用, ...

  10. dynamic的使用

    一.在没有dynamic之前,我们想要获取返回object对象里的属性的值时,使用反射的方法来获取该对象的属性值. class Program { static void Main(string[] ...