在外部tomcat中运行spring boot应用

在外部tomcat中运行spring boot应用

默认,Springboot使用内嵌的tomcat来运行springboot应用。如果你想使用外部tomcat来运行,需要做一些修改。

1.在pom.xml中将应用修改为war

2.应用启动类修改

需要继承SpringBootServletInitializer,并重写configure方法。

@SpringBootApplication
@MapperScan("com.ybf.activity.web.mapper")
public class Application extends SpringBootServletInitializer {
    private final static Logger logger = LoggerFactory.getLogger(Application.class);

    @Bean
    public ServletRegistrationBean statViewServlet () {
        ServletRegistrationBean reg = new ServletRegistrationBean();
        reg.setServlet (new StatViewServlet());
        reg.addUrlMappings ("/druid/*");
        return reg;
    }

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

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
        logger.info("Application [activity-web] started!");
    }
}

3.添加spring-boot-starter-tomcat依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

4.使用maven打包

在项目的根目录执行mvn clean package -DskipTests=true,这样会自动处理模块间的依赖关系,并且会将该项目的每个模板都进行打包。

打包完毕后,将WAR丢到tomcat就可以跑了。

5.问题记录

系统环境变量的JDK版本要和你的项目保持一致。

我就是因为不一致找了很久的原因。我的项目是JDK1.8,系统环境变量是JDK1.7,丢到tomcat日志只有logback初始化的打印,再没有其他信息,后面就提示已经启动。但访问controller之类的都是404.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值