2012-12-24 61 views
1

我一直在研究Android设备上使用的Spring RESTful应用程序。我试图发送POST请求时发生问题。我的对象在服务器端收到,但所有属性均为空。RestFul使用Spring POST方法

我的控制器:

@Controller 
public class BeanController { 

@Autowired 
private ReservationService reservationService; 

    @RequestMapping(value = "reservation/add/{dateR}", method = RequestMethod.POST) 
public ModelAndView addReservation(@RequestBody Reservation reservation, @PathVariable String dateR) { 
    Date date = Date.valueOf(dateR); 
    boolean result = reservationService.saveReservation(reservation,date); 
    return new ModelAndView("beanXmlView", BindingResult.MODEL_KEY_PREFIX + "reservation", result); 
    } 
} 

在我的客户端我要确保对象属性设置。

我的客户端:

Reservation reservation = new Reservation(); 
      reservation.setDateReservation(Model.date); 
      reservation.setSalle(Model.salle); 
      if(Model.selectedEquipements.size() == 0) 
       reservation.setEquipements(new ArrayList<Equipement>()); 
      else reservation.setEquipements(Model.selectedEquipements); 
      reservation.setPlagesHoraires(Model.selectedPlageHoraires); 
      reservation.setUtilisateur(user); 
      final String url = "http://10.0.2.2:8080/HibernateSpringREST/"; 
      RestTemplate restTemplate = new RestTemplate(); 
      // Add the Jackson and String message converters 
      restTemplate.getMessageConverters().add(new StringHttpMessageConverter()); 
      restTemplate.getMessageConverters().add(new SimpleXmlHttpMessageConverter()); 
      // Make the HTTP POST request, marshaling the request to JSON, and the response to a String 
      restTemplate.postForObject(url + "reservation/add/"+Model.date, reservation, Reservation.class); 

没有任何一个有什么可能会造成这个问题的想法?

+0

您知道实际上发送了什么邮件吗? – dmon

+0

我正在发送该预留对象。我在做什么有什么不对?我使用XML btw –

+0

好吧,很难从代码中知道,第一步是要知道数据是否正在序列化。 – dmon

回答

0

从给出的信息我不能推断出什么问题。要了解我会进行如下操作:

  1. 在调试模式下运行服务器,并设置一个断点上的addReservation
  2. 第一线观察,如果reservation参数是你希望它是什么
  3. 如果没有,请检查客户端发送的POST请求,要么是on the device or with Fiddler/Wireshark