Spring REST服务“找不到带URI的HTTP请求的映射”

时间:2016-02-15 13:35:05

标签: java spring rest spring-mvc

我的休息服务器使用Spring时出现了一个奇怪的问题。在其他问题上我没有找到解决问题的方法。

一切正常,我有多个映射到不同的控制器方法,它们都工作。我创建了一个新的映射到另一个URI,我无法使其工作,我总是在尝试访问时发现404未找到错误。

以下是我的一些代码:

Restcontroller:

@RequestMapping(value = "/addToken/{token}/imei/{imei}", method = RequestMethod.POST)
    public boolean setUserToken(@PathVariable("token") String token, @PathVariable("imei") String imei) {
        boolean result = false;
        try {
            result = DbConnector.setToken(imei,token);
        } catch (Exception e) {
            System.out.println("Couldn't set token to database");
        }
        return result;
    }

这是不起作用的方法,我不知道为什么,当我调用base_url / addToken时,我没有得到任何错误,但是当我在它之后添加任何内容时,我得到404错误。

Web.xml中:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
 <display-name>SpringServiceSample</display-name>
 <servlet>
    <servlet-name>rest</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rest</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

其余-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 <context:component-scan base-package="controllers" /> <!-- Spring auto scans all elements in base package and all its child packages for Controller servlet -->

<!-- <mvc:annotation-driven> -->
<!--      <mvc:message-converters> -->
<!--             <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> -->
<!--             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> -->
<!--    </mvc:message-converters> -->
<!-- </mvc:annotation-driven> -->

<mvc:annotation-driven />
  </beans>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

setUserToken方法仅用于发布请求。您需要提交带有发布请求的表单到此URL或更改

@RequestMapping(value = "/addToken/{token}/imei/{imei}", method = RequestMethod.GET)