2012-11-19 4 views
1

ROO로 간단한 webapp를 빌드하고 JSON 지원에 추가했습니다. POST, GET 및 작업 벌금을 삭제, 나는 200 OK 메시지로 인정하게 그러나 모든 PUT 요청을하고 아무 일도 일어나지 - 아래 참조 없습니다 :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 메시지를받는 중, 응용 프로그램이 반환 된 것과 같이 필요에 따라 객체를 업데이트하지 않습니다. regexDef가 여전히 null입니다.

ROO에 익숙하지 않고 모든 JSON 코드가 자동으로 생성되기 때문에 생성 된 파일을 어디서 볼 것인지 정확히 알지 못해서 도움이 될 것입니다.

답변

0

컨트롤러에서 updateFromJson 메서드를 살펴보십시오. 빨간색 화살표 (aspect marker)를 마우스 오른쪽 버튼으로 클릭 한 다음 Aspect Declarations -> ...를 클릭하여이 방법에 접근 할 수 있습니다. STS를 사용하여 이들을 확인해야한다고 생각합니다. 이 방법에서는

, 나는이를 참조하십시오

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

당신은 여기에서 볼 수있는 언급 요청 매핑의 "아이디"가 없다. 즉, 잘못된 경로를 사용하여이 메소드를 호출합니다. 또한 id를 json 페이로드의 일부로 전달해야하므로 업데이트 할 개체를 알 수 있습니다.