В настоящее время я пытаюсь понять, как Servlet-диспетчер работает с контроллером Rest, но Postman возвращает 404 на все, что я пробовал до сих пор.Использование DispatcherServlet для RestController
Остальные контроллер
@RestController
@RequestMapping(value = "/applications")
public class ApplicationController {
private static final Logger logger = LoggerFactory.getLogger(ApplicationController.class);
@Autowired
@Qualifier("ApplDAO")
private ApplDAO applDAO;
@Autowired
ApplicationService objServices;
@RequestMapping(value = "for_user\\{username:\\d+}", method = RequestMethod.GET)
public Application getApp(@PathVariable("username") String username){
Application app = applDAO.getByUsername(username);
return app;
}
}
Мой web.xml
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring4-servlet.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Processes application requests -->
<servlet>
<servlet-name>springDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Я попытался не используя URL-шаблон/*, но без результатов. Это адрес, к которому я пытался обратиться http://localhost:8080/project/applications/for_user/username:acid Есть что-то не так с URL-адресом, который я использую, или я неправильно использовал диспетчера. Здесь ошибка весной
отображение не найдено для запроса HTTP с URI [/ проекта/приложений/for_user/имя пользователя: кислота
Почему вы используете обратную косую черту вместо косых черт в вашей RequestMapping? Почему вы используете regex \\ d +, если вы хотите отправить имя пользователя: кислота (или кислота?) В качестве имени пользователя. Просто используйте 'value ="/for_user/{username} "' и используйте 'http: // localhost: 8080/project/applications/for_user/acid'. –
Я наблюдал за учебниками и заблудился в огромном количестве информации, спасибо за то, что расчистил его для меня, решил мою проблему –