1

私は、Android デバイスから消費される Spring RESTful アプリケーションに取り組んできました。POST リクエストを送信しようとすると、問題が発生します。オブジェクトはサーバー側で受信されますが、すべての属性が null です。

私のコントローラー:

@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);

この問題の原因について考えている人はいますか?

4

1 に答える 1

0

与えられた情報からは、何が問題なのか推測できません。調べるには、次のように進めます。

  1. サーバーをデバッグ モードで実行し、最初の行にブレークポイントを設定します。addReservation
  2. reservationパラメータが期待どおりかどうかを観察します
  3. そうでない場合は、デバイス上または Fiddler/Wireshark を使用して、クライアントから送信された POST 要求を検査します。
于 2012-12-25T13:10:52.713 に答える