可以为空的Double PathParam出错

时间:2014-01-15 14:31:09

标签: java web-services jersey

我有一个REST服务:

@POST
@Path("/shop/{prodID}/{price}")
public Response updatePrice(@PathParam("prodID") Long prodID, @PathParam("price") Double price) {
        priceDAO.updatePrice(prodID, price);
        return Response.ok().build();
}

如果我为UI发送号码他们工作得很好,但如果发送空参数(null)我有错误:

sitesurl/shop/33/null 404 Not Found

Class java.lang.Double can not be instantiated using a constructor with a single String argument

在控制台上。

如果以字符串(“null”)发送null,我们可以看到NumberFormatException。

为什么我的服务无法解析可空的PathParam?

1 个答案:

答案 0 :(得分:0)

chrylis如果你不提供任何路径参数,它会抛出未找到的404资源,

我同意Chrylis表格param是个好主意。 Gene然后你应该确保在发送请求路径时params不为null并且遵守资源规范。不应发送长字符串或双字符串。 另一种摆脱方法是将资源规范保留为String,并手动转换为Long等。 有办法很好地处理ParamExcption。创建一个实现ExceptionMapper的Mapper并抛出自定义响应