Spring Boot 项目部署到本地Tomcat,出现访问路径问题
warning:
这篇文章距离上次修改已过252天,其中的内容可能已经有所变动。
解释:
Spring Boot 项目默认内嵌了Tomcat,但有时为了更多的定制化选项或者其他原因,我们需要将Spring Boot项目部署到外部的Tomcat服务器。当在Tomcat中部署Spring Boot项目时,访问路径问题可能是因为Spring Boot的内置Tomcat和外部Tomcat的配置不一致,或者是因为Spring Boot的Servlet初始化方式与Tomcat的要求不匹配。
解决方法:
- 确保Spring Boot项目的
pom.xml
或build.gradle
文件中没有指定spring-boot-starter-web
依赖的provided
作用域。如果有,移除或更改。 - 如果你的项目有一个
SpringBootServletInitializer
的扩展类,确保正确重写了configure
方法。
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
// ... 其他的Spring Boot配置
}
- 确保
application.properties
或application.yml
中没有设置server.context-path
属性,或者如果设置了,确保它与Tomcat的路径设置一致。 - 如果你的项目有多个模块,确保每个模块都有一个
SpringBootServletInitializer
扩展类,并且在main
方法所在的类中正确重写了configure
方法。 - 清理并重新构建你的项目,然后将生成的
war
文件部署到Tomcat。 - 确保Tomcat的
conf/server.xml
中的<Host>
标签配置正确,没有错误的路径或者配置冲突。 - 如果你的Tomcat服务器运行在不同的端口上,确保访问路径包含了正确的端口号。
- 确保没有其他的Web应用部署在Tomcat上冲突了路径。
如果以上步骤都正确无误,通常可以解决Spring Boot项目部署到本地Tomcat时出现的访问路径问题。
评论已关闭