springBoot打war包+少走弯路

需求最近用boot写的项目,想打war包再外部tomcat运行。

  1. pom添加依赖
<!--外置tomcat启动-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

  1. 修改pom打包方式 packaging 修改为war
<groupId>com.lyjn</groupId>
    <artifactId>lyjn-back</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>lyjn-back</name>
  1. 改造启动项,继承SpringBootServletInitializer;重写configure方法。因为springboot 自己能认识自己的启动项,而外部tomcat是不认识的,所以要自己继承,并读取配置
@MapperScan("com.lyjn.dao")
@SpringBootApplication
public class LyjnBackApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(LyjnBackApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(LyjnBackApplication.class, args);
    }
}

此时就能使用maven命令打包了

打成war包放入外部tomcat时遇错

tomcat8以下版本,将war包直接放到tomcat 的webapp目录下,启动并查看catania.out日志:
**重点:**启动tomcat,你可能会遇到一个错:
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
是因为:tomcat提供的el-api 和项目里面的el-api.jar冲突;这时候你需要去找到自己本机上用的el-api的版本,copy到tomcat的lib目录下,覆盖原来的jar包。不过我也没有找到el-api.jar

解决:直接使用tomcat8已上版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值