Tomcat欢迎页无法显示但REST端点正常,请求排查问题原因
问题原因及解决办法
你遇到的404是因为:
- 你部署的Web应用上下文路径是
HelloWebApp_war_exploded,所以http://localhost:8080/HelloWebApp_war_exploded/api/hello-world能正常访问,说明应用本身没问题 - 直接访问
http://localhost:8080是请求Tomcat的根上下文(ROOT应用),这个根上下文里没有对应的可访问资源,所以返回404
下面是几种解决办法:
方法1:把你的应用设为Tomcat的根应用
- 方式A:修改war包名称
将你的项目打包后的war文件重命名为ROOT.war,放到Tomcat的webapps目录下(如果原来有ROOT目录可以先删除),Tomcat启动后会自动将其部署为根上下文,此时访问http://localhost:8080就会指向你的应用。 - 方式B:修改Tomcat配置
打开Tomcat的conf/server.xml文件,找到<Host>标签,在里面添加如下配置:
保存后重启Tomcat,你的应用就会被映射到根路径。<Context path="" docBase="HelloWebApp_war_exploded" reloadable="true"/>
方法2:在应用内添加根路径映射
如果你不想修改Tomcat全局配置,可以在你的应用中添加根路径的处理逻辑:
- 如果你用的是Spring/Spring Boot,在控制器中添加根路径的请求映射:
此时访问@GetMapping("/") public String root() { return "欢迎访问应用根路径"; }http://localhost:8080/HelloWebApp_war_exploded/就能正常返回内容,但要直接用localhost:8080访问还是需要调整上下文路径。
方法3:添加默认欢迎页面
在你的Web应用的webapp(或src/main/webapp)目录下创建index.html、index.jsp等Tomcat默认识别的欢迎页面,这样访问http://localhost:8080/HelloWebApp_war_exploded/时会自动加载该页面。
内容的提问来源于stack exchange,提问作者TestUser
相关产品推荐
相关产品推荐

