请求映射返回错误404

问题描述:

这是我的控制器,该控制器的请求映射到这个URL http://localhost:8080/SpringMVCJSON/rest/kfc/brands请求映射返回错误404

位指示文件

@Controller 
@RequestMapping("/kfc/brands") 
public class JSONController { 

    @RequestMapping(value = "{name}", method = RequestMethod.GET) 
    public @ResponseBody 
    Shop getShopInJSON(@PathVariable String name) { 

     Shop shop = new Shop(); 
     shop.setName(name); 
     shop.setStaffName(new String[] { "name1", "name2" }); 

     return shop; 

    } 

这是与调度请求的servlet请求中的web.xml /响应以及url

<display-name>Spring Web MVC Application</display-name> 

    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

假设一切都没问题,当我在这个ur上启动我的应用程序时l在返回错误404 http://localhost:8080/SpringMVCJSON/rest/kfc/brands 我的服务器控制台将返回此警告

Apr 26, 2016 12:14:47 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/SpringMVCJSON/rest/kfc/brands] in DispatcherServlet with name 'mvc-dispatcher' 

请为什么不tomcat的请求映射到服务器?

+0

任何[春]看护人:

在这里你可以找到关于使用@RequestMapping的更多信息?几乎300个相同的问题:http://*.com/search?q=is%3Aq+%22No+mapping+found+for+HTTP+request+with+URI%22+%22in+DispatcherServlet+with+name%22和乍一看没有规范的复制呢。这会产生太多的印象,认为[春]不值得去策划。 – BalusC

您将控制器配置为可在/kfc/brands/{name} URL上使用,但试图通过/kfc/brands访问它。在这里http://docs.spring.io/autorepo/docs/spring/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping

+0

因此,如果我删除这行@RequestMapping(value =“{name}”,method = RequestMethod.GET),那么一切应该没问题? – Blaze

+0

尝试先通过URL“http:// localhost:8080/SpringMVCJSON/rest/kfc/brands/test”进行访问,然后测试它是否有效。 –

+0

https://www.youtube.com/watch?v=dDWNTR0-rns – Blaze