У меня есть веб-приложение, которое мы применяем Spring MVC только для служб REST. В данный момент. Мы хотим, чтобы наши остальные службы отображались в $ {contextPath} / rest / **
, однако когда я устанавливаю это, мы получаем:
Не найдено сопоставление для HTTP-запроса с URI [/ myapp / rest / testSvc / message] в DispatcherServlet с именем 'Spring MVC Dispatcher Servlet'
Мой web.xml
содержит:
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/servlet-context.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/rest</url-pattern>
</servlet-mapping>
servlet-context.xml
, что нормально и регистрирует службы по мере их регистрации при запуске.
<context:component-scan base-package="com.mycompany.myapp.rest" />
<mvc:annotation-driven />
Мой контроллер выглядит следующим образом:
@Controller
@RequestMapping(value = "/rest/testService")
public class TestREST {
@RequestMapping(value="message", method=RequestMethod.GET)
public @ResponseBody String getMessage() {
return "REST working";
}
Если я поменяю шаблон URL
] в web.xml
в * .rest и моем сопоставлении запросов для message
в message.rest
это работает.