JSON PUT Spring Roo

时间:2012-11-19 17:51:54

标签: spring-roo

我已经使用ROO构建了一个简单的webapp,并添加了JSON支持。 POST,GET和DELETE工作正常,但是我发出的任何PUT请求都被200 OK消息确认,然后没有任何反应 - 见下文:

**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消息,但应用程序并没有按要求更新对象,如返回中所示 - regexDef仍然为null。 / p>

是ROO的新用户,由于所有JSON代码都是自动生成的,我不确定在生成的文件中查找的确切位置,因此我们非常感谢您提供帮助。

1 个答案:

答案 0 :(得分:0)

查看控制器中的updateFromJson方法。您可以通过单击红色箭头(方面标记)上的右键然后选择Aspect声明 - >来实现此方法。 ......我认为您需要使用STS来查看这些内容。

在这种方法中,我看到了:

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

您可以在此处看到请求映射中没有提及“id”。这意味着您使用错误的路径来调用此方法。此外,您需要将id作为json有效负载的一部分传递,因此它知道要更新的对象。