我有一个 web 应用程序,我们目前仅将 spring MVC 应用于 REST 服务。我们希望我们的休息服务出现在 下${contextPath}/rest/**
,但是当我设置它时,我们得到:
在名称为“Spring MVC Dispatcher Servlet”的 DispatcherServlet 中找不到具有 URI [/myapp/rest/testSvc/message] 的 HTTP 请求的映射
我的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-pattern
inweb.xml
转换为 *.rest 并且我的请求映射message
到message.rest
它的工作。