Код: Выделить всё
No mapping for GET /new_endpoint
Мои существующие контроллеры работают нормально. Вот пример существующего контроллера:
Код: Выделить всё
package com.example.project.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class NewController {
@GetMapping("/some_endpoint")
public String newHandler() {
return "newView";
}
}
Я получаю 404.
Код: Выделить всё
No mapping for GET /new_endpoint
- Аннотации. Гарантировано, что новые контроллеры правильно аннотированы @Controller или @RestController, а их методы обработчика имеют соответствующие @RequestMapping, @GetMapping, или @PostMapping аннотации.
- Структура пакета: подтверждено, что объявления пакета в новых классах контроллера соответствуют структуре каталогов, и они находятся в том же пакете, что и существующие контроллеры.
- Сканирование компонентов: проверено, что @ComponentScan включает пакет com.example.project.controllers. Я имею в виду, это тоже очевидно!
Код: Выделить всё
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.project.controllers"})
public class Application {
// ...
}
- Модификаторы видимости: новые классы контроллеров и их методы-обработчики объявлены как общедоступные .
- Журналы приложений: проверены журналы запуска, и Spring обнаруживает только существующие контроллеры. Новые контроллеры не отображаются в журналах в разделе RequestMappingHandlerMapping.
- Чистая сборка и запуск: Выполнена ./gradlew clean build и ./gradlew run. Приложение запускается без ошибок, но новые контроллеры по-прежнему не распознаются.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-gradle