0
我正在使用Spring Boot編寫REST API。我的一個端點處理POST請求,該請求使用JSON請求主體。同時,另一個參數在URL中提供。爲什麼406發送包含路徑變量和請求正文的請求
@RequestMapping(
value = "/cycle?&visit={visitid}",
method = RequestMethod.POST,
consumes = "application/json",
produces = "text/plain")
@ResponseStatus(HttpStatus.CREATED)
public String persistCycleCount(@Valid @PathVariable Integer visitId, @Valid @RequestBody CycleCount cycleCount)
實體CycleCount
看起來是這樣的: @Entity @Table(name = 「CYCLE_CNT_HIST」)
public class CycleCount implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "CYCLE_CNT_ID")
private long id;
@NotNull
@Column(name = "DOOR_ID")
private String activeDoorId;
@Column(name = "VISIT_ID")
private long visitId;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "SAMPLE_DTM")
private Date sampleDateTime;
@Column(name = "SAMPLE_TIMEZONE")
private int sampleTimeZone;
@NotNull
@Column(name = "SYS_CYCLE_CNT")
private int systemCycleCount;
@NotNull
@Column(name = "CTRLR_CYCLE_CNT")
private int controllerCycleCount;
當測試通過發送請求具有以下JSON到/cycle?&visit=1
的API,我得到了406 。
{
"activeDoorId": "d002",
"controllerCycleCount": 15000,
"systemCycleCount": 78000
}
這裏是請求的揚鞭輸出: 當我嘗試通過在處理程序方法的第一行設置斷點來進行調試時,它在發送請求後甚至沒有命中該行。 我有其他的終端類似於這個不需要在url中的變量,他們都工作。我爲什麼得到406?
使用'RequestParam'工作。當你已經有@ Valid語句來驗證JSON時,你需要什麼'BindingResult'? – ddd