spring-boot - RestController 在 SpringBoot 中工作正常,但在 Tomcat 上抛出 404

标签 spring-boot tomcat http-status-code-404 spring-restcontroller

我有一个简单的 RestController 应用程序 -

@RestController
public class GreetingController {

    private static final Logger logger = LogManager.getLogger(GreetingController.class);

    @RequestMapping("/greeting")
    public ResponseEntity<GreetingResponse> greeting(@RequestParam(value = "name", defaultValue = "World") String name) throws ServiceException, Exception {
        logger.info("Received Request. Name: " + name);

它在 SpringBoot ( http://localhost:8080/greeting ) 上运行良好,但是当我创建 WAR 并将其部署在 Tomcat (9.0.2) 上时,它会抛出 404。

应用程序部署良好,我可以访问应用程序中的静态 HTML 页面,因此我的上下文路径是正确的。

我可能会遗漏什么?

这是我的 gradle 任务 -

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile('com.jayway.jsonpath:json-path')
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0'    
}

war {

    archiveName = "ROOT.war"
    manifest {attributes "Implementation-Version": "${version}"}
}

我有整个应用程序的 zip here ,如果有人好奇的话。

最佳答案

发现问题。我的应用程序必须扩展 SpringBootServletInitializer

@SpringBootApplication
public class Application  extends SpringBootServletInitializer {

关于spring-boot - RestController 在 SpringBoot 中工作正常,但在 Tomcat 上抛出 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52507181/

相关文章:

java - Spring Boot (2.2.0.RELEASE<) 与 Spring Data Rest 端点未公开

java - Spring Boot应用初始化异常, 'embeddedServletContainerCustomizerBeanPostProcessor'初始化失败

java - 如何配置 Spring Security AuthenticationManager 与 JdbcUserDetailsManager 一起使用?

java - Java 应用程序中的并发 - Cloud Run

jsp - 在 VS CODE 中运行 Tomcat for Java 扩展时更新 JSP

java - 如何在 Eclipse 中配置 pivotal tc 以使用 log4j 配置而不是它自己的 loggingmanager?

tomcat - 将 Javascript 文件导入 Camunda 嵌入式表单

internet-explorer - 未识别的 404 未找到页面

eclipse - tomcat 404错误,但它在eclipse中有效

http - 为什么 http ://google. com/a/bogus/url 不重定向到 404 URL,为什么这是首选?