Tengo una aplicación web en la que estamos aplicando Spring MVC solo para servicios REST en este momento. Queremos que nuestros servicios de descanso a aparecer bajo ${contextPath}/rest/**
, sin embargo, cuando me puse esto, obtenemos:No se puede hacer que el despachador Spring MVC funcione correctamente cuando el patrón de url es una ruta
ninguna asignación encontró para la petición HTTP con URI [/ miaplicacion/descanso/testSvc/mensaje] en DispatcherServlet con el nombre 'Spring MVC Dispatcher servlet'
Mi web.xml
tiene:
<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
, que está bien y está registrando los servicios a medida que se registraron en el arranque.
<context:component-scan base-package="com.mycompany.myapp.rest" />
<mvc:annotation-driven />
Mi controlador busca de la siguiente manera:
@Controller
@RequestMapping(value = "/rest/testService")
public class TestREST {
@RequestMapping(value="message", method=RequestMethod.GET)
public @ResponseBody String getMessage() {
return "REST working";
}
Si Cahnge la url-pattern
en web.xml
a * .RESTO y mi solicitud de mapeo para message
a message.rest
funciona.
¿Has probado '/ rest *'? –
Pensé que podría ser algo así también, sin embargo, desafortunadamente ese no es el caso, el servlet realmente está recibiendo la solicitud y por eso se registra, pero no se corresponde correctamente. –