我有一个简单的 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/