有GET时PUT请求出错404

时间:2017-08-09 10:10:31

标签: spring rest http-status-code-404 spring-restcontroller http-status-code-405

我的休息服务器上出现了一个小问题。它基于spring web framework。

这是给我带来问题的代码:

@RestController
@RequestMapping("users")
public class usersWS {

    //some other functions

    //works
    @RequestMapping(
        value="/{iduser}/functions/",
        method=RequestMethod.GET,
        produces={"application/json"})
    public ResponseEntity<String> getUserFunctions(@PathVariable("iduser") String iduser){
        //do stuff
        return stuff;
    }

    //Don't works
    @RequestMapping(
        value="/{iduser}/functions/"
        method=RequestMethod.PUT,
        consumes={"application/json"})
    public ResponseEntity<String> addUserFunctions(@RequestBody String json, @PathVariable("iduser") String iduser){
        //do stuff
        return stuff;
    }

}

服务器由以下人员发起:

@SpringBootApplication()
@ImportResource("classpath*:**/jdbc-context.xml")
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

要调用此服务器,我使用此处的HTML处理程序:Spring HTTP Client

当我调用get动词时,一切正常。我得到了iduser,得到了我想要的数据,没问题。

当我调用put动词时...我有一个错误404.我检查过,网址(http://localhost:8080/users/xxx/functions/)完全相同,我发送了正文。

我理解得到405错误,但我真的不明白我怎么能有404.如果映射错了,服务器应该至少看到get动词上有一个函数给我一个405.

我有其他使用PUT / POST的功能,但它们没有@PathVariable。是否可以混合使用@RequestBody和@PathVariable?

欢迎任何帮助。

0 个答案:

没有答案