Здравствуйте. Помогите, пожалуйста, решить следующую проблему.
Пишу RESTFul приложение на спринге.
Вот так настроил web-конфиг
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(AppConfig.class);
ctx.setServletContext(container);
ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
Теперь создаю два рест-контроллера
@RestController
public class MainRestController {
static final Logger log = LogManager.getLogger(MainRestController.class);
@Autowired
private UserService userService;
@Autowired
private GroupService groupService;
@Autowired
private RoomService roomService;
@Autowired
private UserEntityToUserDTO userEntityToUserDTO;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String homePage() {
return "index";
}
.....
и
@RestController
public class UserController {
private static Logger logger = LogManager.getLogger(UserController.class);
@Autowired
UserService userService;
@Autowired
UserEntityToUserDTO userToUserDTO;
@Autowired
UserDTOtoUserEntity userDTOtoUser;
@Autowired
GroupService groupService;
@RequestMapping(value = "/getUserByCredentials", method = RequestMethod.GET)
public ResponseEntity<UserDTO> getUserByCredentials(HttpServletRequest req,
@RequestParam(value = "email") String email,
@RequestParam(value = "password") String password) {
....
Проблема заключается в том, что я имею доступ к адресам, которые замаплены в
MainRestController , все что есть в
UserController не видится (404). Я не понимаю, чем контроллеры отличаются. И почему один работает, а другой игнорится.
UPD@Configuration
@Import({JpaConfig.class,
BaseControlRestConfig.class,
AppInitializer.class})
@ComponentScan(basePackages = "com.roommate.basecontrol")
@EnableWebMvc
public class AppConfig {
}
@Configuration
@ComponentScan(value = "com.roommate.basecontrol.controllers.restControllers")
@Import({BaseControlServiceConfig.class,
BaseControlModelConfig.class})
public class BaseControlRestConfig {
@Bean
public RequestContextListener requestContextListener() {
return new RequestContextListener();
}
}