2012-11-19 126 views
1

我使用ROO构建了一个简单的webapp,并添加了JSON支持。 POST,GET和DELETE做工精细,但是任何PUT请求我做了200 OK消息被确认,然后没有任何反应 - 见下文:JSON PUT Spring Roo

**curl -i -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{regexDef:"test99"}' http://myserver:8080/emdr/valuedomains/55 

HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Content-Type: application/json;charset=utf-8 
Content-Length: 82 
Date: Mon, 19 Nov 2012 17:35:44 GMT 
{"datatype":"test22","id":55,"regexDef":null,"unitOfMeasure":"test99","version":0}MacBook-Pro:bin$** 

的目的是更新regexDef场,不过虽然我从服务器获取http 200 OK消息时,应用程序没有根据需要更新对象,如return所示 - regexDef仍然为空。

作为新的原产地规则,因为所有的JSON代码是自动生成的,我不知道究竟在何处寻找在生成的文件,因此任何帮助,将不胜感激。

回答

0

查看控制器中的updateFromJson方法。您可以通过点击红色箭头上的右键(方面标记),然后点击Aspect Declarations - > ...来达到此方法。我认为你需要使用STS来查看这些。

在这种方法中,我看到:

@RequestMapping(method = RequestMethod.PUT, headers = "Accept=application/json") 
public ResponseEntity<String> AthleteController.updateFromJson(@RequestBody String json) { 

你可以看到这里有没有提到在请求映射的“身份证”。这意味着您正在使用错误的路径来调用此方法。此外,您需要传递id作为json有效负载的一部分,以便知道要更新哪个对象。