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