springboot打war包后部署到tomcat后访问返回404错误
Posted 夏振兴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot打war包后部署到tomcat后访问返回404错误相关的知识,希望对你有一定的参考价值。
springboot打war包后部署到tomcat后访问返回404错误
1、正常情况下,修改打包方式为war
<packaging>war</packaging>
|
2、启动类继承SpringBootServletInitializer,重写configure方法
@SpringBootApplication public class SmallProgramApplication extends SpringBootServletInitializer {
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SmallProgramApplication.class); }
public static void main(String[] args) { SpringApplication.run(SmallProgramApplication.class, args); } }
|
我因为添加了servlet,在启动类实现了ServletContextInitializer,并重写了onStartup方法,把servlet加进来
@SpringBootApplication public class SmallProgramApplication extends SpringBootServletInitializer implements ServletContextInitializer {
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SmallProgramApplication.class); }
@Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.addServlet(WeiXinServlet.class.getSimpleName(),new WeiXinServlet())// .addMapping("/wx"); }
public static void main(String[] args) { SpringApplication.run(SmallProgramApplication.class, args); } }
|
结果是:在idea启动访问正常,打war包后,tomcat启动正常,但看不到springboot启动日志,能访问servlet,但不能访问controller
我个人判断出现这种原因的可能是:
重写onStartup方法,将SpringBootServletInitializer中的springboot的onStartup方法覆盖,所以导致springboot没有成功启动。
因为这个坑了很久,所以记录下来。
以上是关于springboot打war包后部署到tomcat后访问返回404错误的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot——SpringBoot打war包并部署到Tomcat
springboot项目打war包,并部署到tomcat
SpringBoot打war包并部署到tomcat下运行
springboot项目打成war后部署到tomcat,Tomcat启动时spring boot未加载
使用idea将Springboot项目打war包部署到tomcat服务器上运行步骤详解
SpringBoot应用War包形式部署到外部Tomcat