Spring Boot 打war包并利用docBase指定根目录为打包的工程
指定根目录有两种方式
1:直接将打的war包名称定义为ROOT
2:利用docBase
比如笔者war包名为xibu.war,将该war包丢到/Users/archerlj/Library/apache-tomcat-8.5.8/webapps
目录下即可。
为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:
<!-- path留空代表访问域名后面不需要带项目的名称 -->
<Context path="" docBase="xibu" reloadable="false" />
- 将SpringBoot的项目的打包方式设置为war
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<packaging>war</packaging> - 移除内嵌的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> - 添加tomcat-servelt-api依赖
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<!--此处跟随服务器tomcat版本-->
<version>7.0.42</version>
<scope>provided</scope>
</dependency> - 修改入口方法 继承一个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);
}
} - 添加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
关于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指定根目录为打包的工程的更多相关文章
- Spring Boot 打 war 包的步骤
## Spring Boot 打 war 包的步骤 1. 添加 spring-boot-start-tomcat 的 provided 依赖 ``` <dependency> <gr ...
- Spring Boot发布war包流程
1.修改web model的pom.xml <packaging>war</packaging> SpringBoot默认发布的都是jar,因此要修改默认的打包方式jar为wa ...
- spring boot 打 war包
spring boot .spring cloud打 war包,并发布到tomcat中运行 1.pom文件修改 <packaging>war</packaging> 2.< ...
- Spring Boot以War包启动
1.IDEA Spring Initializer自动构建的war包项目,自动生成的Initializer类,用于外部Tomcat容器启动该项目时调用,如果仍然使用主类main函数方式启动则与此类无关 ...
- spring boot 打war包部署,打jar包
官方文档:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable- ...
- spring boot打war包启动Tomcat失败
Tomcat启动失败:最后一个causy by :java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getMa ...
- Spring Boot打war包和jar包的目录结构简单讲解
Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示: 1.war包目录结构分析WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式 ...
- spring boot打war包发布
由于公司一贯的方式都是将war包布在中间件tomcat下运行 所以这次springboot项目需要打war包 how to? 第一步:pom.xml 文件中,打包方式需要修改成war <pack ...
- Spring Boot打war包
然后修改下入口: 这样程序既可以以war也可以以jar的形式run. 右键项目properties,找到项目位置,然后: 然后放到tomcat的webapps的目录下: 然后启动tomcat:star ...
随机推荐
- Python 学习笔记 多进程 multiprocessing--转载
本文链接地址 http://quqiuzhu.com/2016/python-multiprocessing/ Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时 ...
- 读书笔记《Spring Boot实战 —— Java EE 开发的颠覆者》
Spring框架是轻量级的企业级开发一站式解决方案 Spring使用简单的POJO Plain Old Java Object 无限制的普通Java对象 Spring Framework Runtim ...
- jsp导入数据库数据写法(模板)
1.导入表格模板 <%@ page language="java" contentType="text/html; charset=utf-8" page ...
- [jshint] 'import' is only available in ES6 (use 'esversion: 6'). (W119) 提示import等ES6语法的jshint错误的,在代码前加一行 /* jshint esversion: 6 */
官方下载了vue的简单项目,用vscode打开main.js,代码前出现黄点,js报错了 把鼠标移至import的波浪线上,出现提示:W119 - ‘import’ is only availabl ...
- MySQL的正则表达式的LIKE和REGEXP区别
LIKE匹配整个列.如果被匹配的文本在列值 中出现,LIKE将不会找到它,相应的行也不被返回(除非使用 通配符).而REGEXP在列值内进行匹配,如果被匹配的文本在 列值中出现,REGEXP将会找到它 ...
- R语言 平滑连接
参考自 153分钟 使用平滑曲线,沿着X轴从左向右的顺序依次连接,可以使用spline样条函数线. x = 1:5 y = c(1,3,4,2.5,2) plot(x,y) sp = spline(x ...
- 《剑指offer》第五十七题(为s的连续正数序列)
// 面试题57(二):为s的连续正数序列 // 题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数). // 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结 ...
- top 命令常用操作
1.显示进程参数 top -c 下面操作为top命令后操作 2.按cpu/mem排序 shift + p/m 3.高亮 排序列 按x键 4.高亮 变化进程行 按b键 5.显示cpu每核的运行状态 按1 ...
- ffmpeg 加 logo
How to add a watermark or logo to any corner or the center of a video with FFMPEG. ffmpeg –i video.m ...
- 安卓中使用HttpURLConnection连接网络简单示例 --Android网络编程
MainActivity.java: package thonlon.example.cn.httpurlconnectionpro; import android.os.Bundle;import ...