2013-09-05 2 views
0

내가 RestTemplate을 사용하여,하지만 난 예외를 다음 얻을 기능 postFor를 호출 할 때, 아래에 보여 세부 사항에 대한 코드입니다 오전 :HTTP 상태 500 - org.springframework.web.client.HttpClientErrorException : 404/

컨트롤러

@Controller 
@RequestMapping("/data") 
public class DataController { 

    @RequestMapping(value = "/{id}", method = RequestMethod.POST) 
    public ResponseEntity<ManagementResource> postData(@PathVariable("id") String id,@RequestBody Data1 data) { 
     RSResponse<Data1> response = new RSResponse<Data1>(); 
     response.setStatus(RSResponse.Status.SUCCESS); 
     response.setData(data); 
     return new ResponseEntity<ManagementResource>(HttpStatus.CREATED); 
    } 
} 

클라이언트 코드 :

RestTemplate rt = new RestTemplate(); 
     Data1 d = new Data1(); 

     d.setEmp_id(1); 
     d.setEmp_name("abc"); 
     d.setEmp_salary(10000); 

     Map<String, String> vars = new HashMap<String, String>(); 
     vars.put("id", "JS01"); 
     String url = "http://localhost:8090/JSFFaceletsTutorial/data/{id}"; 

     ResponseEntity<Data1> response = rt.postForEntity(url,d,Data1.class,vars); 
     Data1 data = response.getBody(); 

경우 알려주세요 누구든지 그것을 압니다. 감사합니다.

+0

web.xml이 누락되었습니다. 그것을 추가 할 수 있습니까? – Avi

답변

0

서비스에 헤더가 필요합니까? 그렇다면 다음과 같이 전달할 수 있습니다.

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>(); 
headers.add("Accept", "application/json"); 
HttpEntity<Data1> request = new HttpEntity<Data1>(d, headers); 

ResponseEntity<Data1> response = rt.postForEntity(url,request,Data1.class,vars); 
Data1 data = response.getBody();