您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】springboot打war包,部署到外部tomcat
不忘初心 2019-05-06 围观() 评论() 点赞() 【JAVA开发】
简介:springboot默认使用内嵌tomcat,默认也是打jar包,如何将springboot打war包,并部署到外部tomcat呢?
springboot默认使用内嵌tomcat,默认也是打jar包,如何将springboot打war包,并部署到外部tomcat呢?
一、修改<packaging>标签的值为war
<groupId>com.wolffy</groupId>
<artifactId>reader</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--默认打jar包-->
<!--<packaging>jar</packaging>-->
<!--指定打war包-->
<packaging>war</packaging>
二、pom.xml中排除内嵌tomcat的依赖(有两种方式,二选一即可)
1、舍弃springboot-starter-web,直接添加外部tomcat依赖
<!-- 添加外部tomcat,用来打war包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- 打包时不带上,只用于本地编译、测试、运行 -->
<scope>provided</scope>
</dependency>
2、继续使用springboot-starter-web,排除它的内嵌tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除内嵌tomcat依赖 -->
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加servlet-api的依赖,用来打war包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
这里需要稍微注意一下,在将内嵌tomcat排除之后,一些关于servlet的引用都会丢失,所以必须单独为servlet引入相关的依赖
三、继承SpringBootServletInitializer,重写configure方法
package com.wolffy.reader;
import com.wolffy.reader.util.DefaultProfileUtil;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* This is a helper Java class that provides an alternative to creating a web.xml.
* This will be invoked only when the application is deployed to a servlet container like Tomcat, JBoss etc.
* <p>
* 两种方式:
* 1、可以直接写在Application.java中
* 2、可以再新写一个类,可与Application.java共存
* <p>
* Created by Felix on 2018/12/7.
*/
public class ApplicationWebXml extends SpringBootServletInitializer {
/**
* set a default to use when no profile is configured.
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 可要可不要
DefaultProfileUtil.addDefaultProfile(builder.application());
// 指定运行的主类,官方标准写法
return builder.sources(Application.class);
}
}
这一步必须要写,否则运行时会出现404。
上述三个步骤,正确配置完毕之后,将打出来的war包放到tomcat中运行,就可以看到启动类已经变成我们重写了configure的那个ApplicationWebXml.java了(如果是直接在Application.java中写的,那入口类就依旧还是Application.java)
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
- JPA报错“No identifier specified for entity”的原因
- springboot整合jpa启动报错'hibernate.dialect' not set
- springboot使用jackson处理时间碰到的两个坑
- Linux不使用tomcat搭建springboot服务图文教程
- springboot项目提示“Failed to determine a suitable driver class”
- springboot项目在mac下启动特别慢
- 使用idea搭建springboot项目图文教程
- Spring Boot配置Druid数据源和使用教程
- springboot连接mysql报错“java.lang.IllegalArgumentException: HOUR_OF_DAY: 2 -> 3”
- springboot项目打包时提示“程序包xxx不存在,找不到符号”
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们