Просто замените @RequestMapping("zk-spring-mvc-test/api/v0/foo")
на @RequestMapping("/v0/foo")
в вашем FooController
классе.
Причина в том, что путь, который вы указываете в аннотации @RequestMapping
, является частью URL-адреса запроса за пределами части, которая вызвала сервлет.
Вы определили отображение DispatcherServlet
как:
<servlet-mapping>
<servlet-name>dispatcher-api</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
Итак, у нас есть zk-spring-mvc-test
, который является корневым контекстом (это зависит от развертывания), /api/
, который вызывает Spring DispatcherServlet
, и, наконец, /v0/foo
, которые должны отображаться вашим контроллером:
@RestController
@RequestMapping("/v0/foo")
public class FooController {
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<String> method() {
return ResponseEntity.ok().body("OK");
}
}
Вы можете увидеть Spring MVC, конфигурирующий шаблон URL для получения дополнительной информации.