我有一个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?
答案 0 :(得分:0)
chrylis如果你不提供任何路径参数,它会抛出未找到的404资源,
我同意Chrylis表格param是个好主意。 Gene然后你应该确保在发送请求路径时params不为null并且遵守资源规范。不应发送长字符串或双字符串。 另一种摆脱方法是将资源规范保留为String,并手动转换为Long等。 有办法很好地处理ParamExcption。创建一个实现ExceptionMapper的Mapper并抛出自定义响应