2013-09-05 122 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();