【发布时间】:2014-08-01 08:57:16
【问题描述】:
我遇到了一个问题。我无法在自己的班级中正确使用BigDecimal 来执行发布操作。希望得到建议
使用 Jersey 2.x、Jackson 1.8
我的班级
public final class TestModel{
private BigDecimal ffff;
public BigDecimal getFfff() {
return ffff;
}
public void setFfff(BigDecimal ffff) {
this.ffff = ffff;
}
public void setFfff(double ffff) {
this.ffff = new BigDecimal(ffff).setScale(2, RoundingMode.HALF_EVEN);
}
}
并尝试做简单的发布操作
@POST
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
public Response test(TestModel tt) {
log.entry();
log.info(tt);
log.exit();
return Response.status(201).entity("").build();
}
但结果我得到
{ClientResponse{method=POST, uri=http://somehost:8080/test, status=400, reason=Bad Request}
让方法正常工作。如果我尝试为BigDecimal 发帖也有效,那么当我尝试将BigDecimal 放入我自己的班级而不是尝试用它发帖时就会出现问题
【问题讨论】:
-
TestModel应该来自哪里? Is 是路径参数、查询参数或表单参数。你需要告诉泽西从哪里得到它。还要检查您发布的 json 值,以确保其格式正确。最后,在 Jersey 注册一个LoggingFilter,这样你就可以准确地追踪发生了什么。 -
link = exmaple 。我按照这个例子没有任何 post 参数的定义。是否需要使用注释以及为什么感谢 logginFilter 去检查
-
呵呵,每天都学点新东西。我从来没有像以前那样使用过
@POST。谢谢你教育我!
标签: post jersey jackson bigdecimal