指定根目录有两种方式

1:直接将打的war包名称定义为ROOT

2:利用docBase

比如笔者war包名为xibu.war,将该war包丢到/Users/archerlj/Library/apache-tomcat-8.5.8/webapps目录下即可。
为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:

在该文件最后的Host节点添加如下:
<!-- path留空代表访问域名后面不需要带项目的名称 -->
<Context path="" docBase="xibu" reloadable="false" />
path是虚拟目录。 docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。

参考:Spring Boot 打war包

  1. 将SpringBoot的项目的打包方式设置为war

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>
  2. 移除内嵌的tomcat模块,但是为了我们在本机测试方便,我们还需要引入它,所以配置如下
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
    <exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>
  3. 添加tomcat-servelt-api依赖
    <dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <!--此处跟随服务器tomcat版本-->
    <version>7.0.42</version>
    <scope>provided</scope>
    </dependency>
  4. 修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
    package com.example;  
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.support.SpringBootServletInitializer;
    import org.springframework.cache.annotation.EnableCaching; @SpringBootApplication
    @EnableCaching
    public class SpringDataJpaExampleApplication extends SpringBootServletInitializer { @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(SpringDataJpaExampleApplication.class);
    } public static void main(String[] args) {
    SpringApplication.run(SpringDataJpaExampleApplication.class, args);
    }
    }
  5. 添加war插件,用来自定义打包以后的war包的名称
    <build>
    <finalName>springboot</finalName>
    <!-- 打包项目 mvn clean package -->
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <warSourceExcludes>src/main/resources/**</warSourceExcludes>
    <warName>springboot</warName>
    </configuration>
    </plugin>
    </build>

    引入上面这个插件,是避免maven打包的时候为我们默认的一个带有版本号的war包名称,因为我们部署到tomcat以后,在访问项目的时候,需要用到这个war包的名称

    6.部署至tomcat服务器

    大部分情况下,在进行工程开发的时候,没有配置server.servlet.context-path

    此时有两种办法:1.直接打包为ROOT.war

    2.更改docBase

    参考:SpringBoot war包部署到tomcat

    关于Tomcat虚拟主机(appBase,docBase)的配置问题

    比如笔者war包名为xibu.war,将该war包丢到/Users/archerlj/Library/apache-tomcat-8.5.8/webapps目录下即可。
    为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:

    在该文件最后的Host节点添加如下:
    <!-- path留空代表访问域名后面不需要带项目的名称 -->
    <Context path="" docBase="xibu" reloadable="false" />
    path是虚拟目录。
    docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。

    这样,启动tomcat之后就可以直接通过访问http://localhost:8080来访问你的项目了。

    好了,cd到tomcat的bin目录下 sudo sh startup.sh启动tomcat就可以了,这时候访问http://localhost:8080就能访问部署的项目了(笔者修改了端口:8081)

Spring Boot 打war包并利用docBase指定根目录为打包的工程的更多相关文章

  1. Spring Boot 打 war 包的步骤

    ## Spring Boot 打 war 包的步骤 1. 添加 spring-boot-start-tomcat 的 provided 依赖 ``` <dependency> <gr ...

  2. Spring Boot发布war包流程

    1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是jar,因此要修改默认的打包方式jar为wa ...

  3. spring boot 打 war包

    spring boot .spring cloud打 war包,并发布到tomcat中运行 1.pom文件修改 <packaging>war</packaging> 2.< ...

  4. Spring Boot以War包启动

    1.IDEA Spring Initializer自动构建的war包项目,自动生成的Initializer类,用于外部Tomcat容器启动该项目时调用,如果仍然使用主类main函数方式启动则与此类无关 ...

  5. spring boot 打war包部署,打jar包

    官方文档:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable- ...

  6. spring boot打war包启动Tomcat失败

    Tomcat启动失败:最后一个causy by :java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getMa ...

  7. Spring Boot打war包和jar包的目录结构简单讲解

    Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示: 1.war包目录结构分析WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式 ...

  8. spring boot打war包发布

    由于公司一贯的方式都是将war包布在中间件tomcat下运行 所以这次springboot项目需要打war包 how to? 第一步:pom.xml 文件中,打包方式需要修改成war <pack ...

  9. Spring Boot打war包

    然后修改下入口: 这样程序既可以以war也可以以jar的形式run. 右键项目properties,找到项目位置,然后: 然后放到tomcat的webapps的目录下: 然后启动tomcat:star ...

随机推荐

  1. PTA 7-2 符号配对(20 分)

    7-2 符号配对(20 分) 请编写程序检查C语言源程序中下列符号是否配对:/*与*/.(与).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志 ...

  2. python bytes类型

    python3中二进制数据则由bytes类型表示,8位一字节 格式化打印文件的二进制编码 with open('spiderman.mkv', "rb") as f: print( ...

  3. Python深入:Distutils发布Python模块--转载

    https://blog.csdn.net/gqtcgq/article/details/49255995 Distutils可以用来在Python环境中构建和安装额外的模块.新的模块可以是纯Pyth ...

  4. python网络编程基础之socket粘包现象

    粘包现象两种 登陆 #服务端import json import socket server=socket.socket()#创建socket对象 ip_port=('127.0.0.1',8001) ...

  5. lua_call/lua_pcall/xpcall

    vs2013+lua5.3.3 1.涉及函数 主要C函数:lua_call和lua_pcall 主要lua函数xpcall 2.正常使用lua_call ①hello.lua文件内容 function ...

  6. 牛客网NOIP赛前集训营-提高组(第七场)C 洞穴

    洞穴 思路: 矩阵乘法 由于只需要知道 A ^ l 的 第a行第b个元素 所以我们每次在做矩阵乘法时只需要算第a行就可以了 还要像矩阵快速幂一样预处理A ^ (1<<d) 代码: #pra ...

  7. 微信小程序动态更改样式

    获取列表长度(动态渲染),当长度>x时添加内联样式并绑定数据{{}},通过js动态更改{{}}

  8. linux计划任务防暴力破解脚本+免密操作

    1.在root创建satools目录 mkdir satools 2.编辑防破解脚本 vi fpj.sh #!/bin/bash #zsl -xie cat /var/log/secure|awk ' ...

  9. HeadFIrst Ruby 第六章总结 block return values

    前言 这一章通过抽取一个文件中的确定的单词的项目进行讲解,主要包括了: File 的打开.阅读与关闭 find_all & refuse方法的相关内容 map 方法的相关内容这章的核心是:关于 ...

  10. JavaScript 第九章总结

    Handing events 前言 这一章节主要讲了关于 events 的内容,讲了 event 的定义,以及如何用 code 来 react to events.同时,也说明了 JavaScript ...