我的休息服务器上出现了一个小问题。它基于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?
欢迎任何帮助。