请求 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 参数。所以只是一个小错字和(我)散列一些代表。 :)) 欢迎!