请求 dto class 中的 BigDecimal 属性始终映射 null,而不管 API 请求中传递的是什么
BigDecimal attribute in request dto class always maps null irrespective of what is passed in API request
对于以下入口点 -
@Path("api/endpoint")
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public CustomerInducedLimitsUpdateResponse customerInducedLimit(@FormParam("type") String type, @FormParam("interval") String interval, @BeanParam LimitsDto dto,
@Context SecurityContext security) {
Dto class 定义 -
public class LimitsDto {
@FormParam("perTxnLimit") private BigDecimal perTxnLimit;
@FormParam("value") private BigDecimal value;
@FormParam("count") private BigDecimal count;
public BigDecimal getPerTxnLimit() {
return perTxnLimit;
}
public void setPerTxnLimit(BigDecimal perTxnLimit) {
this.perTxnLimit = perTxnLimit;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
public BigDecimal getCount() {
return count;
}
public void setCount(BigDecimal count) {
this.count = count;
}
}
以下 API 调用 -
curl -X POST \
http://127.0.0.1:8084/api/endpoint \
-H 'Authorization: Bearer <id>' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'perTxLimit=100&value=100&count=101&type=load&interval=daily'
检查 dto 对象的值显示 perTxnLimit 设置为 null -
我该如何解决这个问题?我在这里错过了什么?
您遇到的唯一问题可能是:您使用 perTxLimit
参数调用请求,但期望使用 perTxnLimit
参数。所以只是一个小错字和(我)散列一些代表。 :)) 欢迎!
对于以下入口点 -
@Path("api/endpoint")
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public CustomerInducedLimitsUpdateResponse customerInducedLimit(@FormParam("type") String type, @FormParam("interval") String interval, @BeanParam LimitsDto dto,
@Context SecurityContext security) {
Dto class 定义 -
public class LimitsDto {
@FormParam("perTxnLimit") private BigDecimal perTxnLimit;
@FormParam("value") private BigDecimal value;
@FormParam("count") private BigDecimal count;
public BigDecimal getPerTxnLimit() {
return perTxnLimit;
}
public void setPerTxnLimit(BigDecimal perTxnLimit) {
this.perTxnLimit = perTxnLimit;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
public BigDecimal getCount() {
return count;
}
public void setCount(BigDecimal count) {
this.count = count;
}
}
以下 API 调用 -
curl -X POST \
http://127.0.0.1:8084/api/endpoint \
-H 'Authorization: Bearer <id>' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'perTxLimit=100&value=100&count=101&type=load&interval=daily'
检查 dto 对象的值显示 perTxnLimit 设置为 null -
我该如何解决这个问题?我在这里错过了什么?
您遇到的唯一问题可能是:您使用 perTxLimit
参数调用请求,但期望使用 perTxnLimit
参数。所以只是一个小错字和(我)散列一些代表。 :)) 欢迎!