springboot打war包后部署到tomcat后访问返回404错误

1、正常情况下,修改打包方式为war

<packaging>war</packaging>

2、启动类继承SpringBootServletInitializer,重写configure方法

@SpringBootApplicationpublic 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加进来

@SpringBootApplicationpublic 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没有成功启动。

因为这个坑了很久,所以记录下来。

原文地址:https://www.cnblogs.com/skyxia/p/10023745.html

时间: 2024-10-13 01:18:39

springboot打war包后部署到tomcat后访问返回404错误的相关文章

SpringBoot应用War包形式部署到外部Tomcat

SpringBoot应用默认打包成为可执行jar模式让我们感觉到部署的便捷,接下来给大家介绍一下SpringBoot项目打War包形式部署到外部Tomcat. 修改原有项目 1.修改项目 打开项目,修改pom文件:1.项目中加入spring-boot-starter-web(如果是已经加入该依赖的项目可以忽略)和spring-boot-starter-tomcat依赖.2.packaging由jar修改为war.3.在build内加入finalName,这个是设置打war包名称,可以不设置使用默

将Java Web项目导出war包并部署到tomcat中

使用eclpise导出war 1.在需要打包的项目上右键>选择[Export]  2.选中[Web]下面的[WAR file],点击[Next]  3.通过[Browse]选择保存路径,点击[Finish]完成即可  使用maven导出war 1.通过eclipse方式:选择需要打包的项目右键选择[Run As]的[Maven install]即可.提示成功后会显示war包的生成路径,一般在项目的target目录下. 2.通过maven命令:控制台进入项目目录,执行mvn package命令即可

将JavaWeb项目打出war包并部署到tomcat

使用Maven的打包,在pom.xml中配置打war包还是jar包. 1)选中项目,右击选择run as→Maven install 在控制台可看到打包成功信息及war包路径. maven中有package,install,deploy三种方式,从上图可以看出,install比package多了maven-install-plugin:2.4:install (default-install),通过看控制台输出,我们可以发现以下区别: package命令完成了项目编译compile.单元测试te

SpringBoot打成war包,部署Tomcat服务器

1: 创建spring boot项目 使用 Spring initializr  可以直接选择创建包的方式 也可以选择在Pom中更改 <groupId>com.dgw</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>demo</n

我爱Java系列之---【SpringBoot打成war包部署】

1.把下面这句话放入pom.xml中,放上边 <packaging>war</packaging> 2.war包要部署到tomcat服务器中,而springboot中自带了一个,这时候要去掉. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclus

Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ©Copyright 蕃薯耀 2017年3月6日 http://www.cnblogs.com/fanshuyao/ 一.Linux快速部署W

springboot打war包,以及多个war包部署

一.springboot打war包 1.修改pom.xml文件打包方式 <groupId>com</groupId> <artifactId>panshi</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>psdj</name> <build> <finalNa

war 包的部署

war 包的部署 发送反馈 SuperMap iServer Java 的 iserver.war 包部署成功后,访问的 URI 为:http://<server>:<port>/iserver/services.若 iserver.war 被重命名,比如被重命名为 renameiserver.war,则需要修改 URI 为 http://<server>:<port>/renameiserver/services. 在 Apache Tomcat 上部署

Springboot打war包

1.pom文件添加命令 <!--springboot打war包,编译时候依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <build>