Java Jersey中的QueryParams整数溢出
泽西爪哇Java Jersey中的QueryParams整数溢出,java,jersey,jsr,Java,Jersey,Jsr,泽西爪哇 @GET @Path("/path1") public String getFunction( @QueryParam("param1") Integer intParam1 ) { ... } 发送获取请求 //溢出Int 如何处理这些错误? 我想捕获错误并抛出另一个(我的)错误,这是因为您传入的号码: 122253462544 大于java可以处理的最大整数值:2^31-1或2147483648 尝试将参数类型设置为“长”: @GET @Path("/path1
@GET
@Path("/path1")
public String getFunction(
@QueryParam("param1") Integer intParam1
) {
...
}
发送获取请求
我想捕获错误并抛出另一个(我的)错误,这是因为您传入的号码: 122253462544 大于java可以处理的最大整数值:2^31-1或2147483648 尝试将参数类型设置为“长”:
@GET
@Path("/path1")
public String getFunction(
@QueryParam("param1") Long intParam1
) {
...
}
尝试以下方法
@GET
@Path("/path1")
public String getFunction(
@QueryParam("param1") String intParam1Str
) {
Integer intParam1 = null;
try {
intParam1 = Integer.parseInt(intParam1Str");
} catch (Exception e) {
//do whatever you want
}
}
@GET
公共字符串get(@QueryParam(“count”)int count,@ErrorParam映射错误){
如果(!errors.isEmpty()){
抛出新的WebApplicationException(…您想要生成的任何响应;
}
…如果参数正常,可以执行任何操作。。。
}
但是您想如何处理它们?您会遇到什么错误?我想捕获错误并抛出另一个(我的)错误。现在,如果数字大于Long,我可以调试此方法(不进入函数)。我不理解您的注释。如果数字大于Long,那么您应该接受字符串,并尝试解析为整数、long等。
@GET
public String get(@QueryParam("count") int count, @ErrorParam Map<String, String> errors) {
if (!errors.isEmpty()) {
throw new WebApplicationException(...whatever response you want to generate...);
}
... do whatever you want to do if parameters are fine ...
}