Spring MVC не находит controller (404 error)
Создал Spring MVC проект, который при запросе на localhost:port/search должен перебрасывать на сайт гугла. Вместо этого выдается ошибка 404. Не могу понять, в чем дело? Использую java конфиг, без web.xml.
package com.example.config;
public class MainAppInitializer implements WebApplicationInitializer{
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext root =
new AnnotationConfigWebApplicationContext();
root.register(WebApplicationContextConfig.class);
servletContext.addListener(new ContextLoaderListener(root));
ServletRegistration.Dynamic appServlet =
servletContext.addServlet("mvc", new DispatcherServlet(root));
appServlet.setLoadOnStartup(1);
appServlet.addMapping("/");
}
}
package com.example.config;
@Configuration
@EnableWebMvc
@ComponentScan("com.example")
public class WebApplicationContextConfig implements WebMvcConfigurer{
@Bean
public InternalResourceViewResolver getInternalResourceViewResolver() {
InternalResourceViewResolver bean=new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/");
bean.setSuffix(".jsp");
return bean;
}
}
Вот сам контроллер. При переходе на /search в консоль должно выводиться сообщение "logging message from controller", но этого не происходит. Spring не распознает данный контроллер
package com.example.controller;
@Controller
public class HomeController {
@GetMapping("/search")
public String getIndexPage(Model model) {
System.out.println("logging message from controller");
return "redirect:http://google.com";
}
}
структура проекта:
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
Разобрался. В properties/deployment assembly для maven dependencies не был задан deploy path. Присвоил ему значение WEB-INF/lib и все заработало
