Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置请求参数的大小限制_Java_Spring_Rest - Fatal编程技术网

Java 设置请求参数的大小限制

Java 设置请求参数的大小限制,java,spring,rest,Java,Spring,Rest,目前我有这样一个API: @GetMapping(/user/{id}) public ResponseEntity<MyClass> getById(@PathVariable @Max(value = Long.MAX_VALUE, message= ID_LENGTH_EXCEED_MESSAGE) Long id) { //some code here return new ResponseEntity<>(Http

目前我有这样一个API:

    @GetMapping(/user/{id})
    public ResponseEntity<MyClass> getById(@PathVariable @Max(value = Long.MAX_VALUE, message= ID_LENGTH_EXCEED_MESSAGE) Long id) {
      //some code here 
        return  new ResponseEntity<>(HttpStatus.OK);
    }
    {baseUrl}/user/1111111111111111111111111111111111111111111
    Failed to convert value of type 'java.lang.String' to required type 'long'; 
    nested exception is java.lang.NumberFormatException: For input string: 
    "1111111111111111111111111111111111111111111"
我收到如下错误消息:

    @GetMapping(/user/{id})
    public ResponseEntity<MyClass> getById(@PathVariable @Max(value = Long.MAX_VALUE, message= ID_LENGTH_EXCEED_MESSAGE) Long id) {
      //some code here 
        return  new ResponseEntity<>(HttpStatus.OK);
    }
    {baseUrl}/user/1111111111111111111111111111111111111111111
    Failed to convert value of type 'java.lang.String' to required type 'long'; 
    nested exception is java.lang.NumberFormatException: For input string: 
    "1111111111111111111111111111111111111111111"
您知道如何限制path变量甚至请求参数中的值的长度并获取自定义限制消息吗?

介绍了如何抛出自定义错误。我建议将
字符串
接受为用户id的
。当
解析失败时,您可以抛出自定义错误

  • 将rest服务方法的输入参数(id)从
    Long
    更改为
    String

    然后检查字符串长度,并在此处进行验证
  • 然后将该字符串值转换为如下所示的长度:

    Long idValue=Long.valueOf(Id)

    现在在这里添加现有代码


  • 看起来java不能处理太大的int或long数字,所以可以处理为string,并使用string的length属性来处理和解析为int或long

    注意: 若字符串的长度太长,超过整数或long可以支持的长度,那个么使用返回函数或任何回调函数

    Java变量范围:-


    只要想一想,如果你能像
    longl=11111111111111111111111111111L那样写
    在Java中,如果可以,也可以执行上述操作,因为在抛出自定义异常之前,库已经在拟合长值时抛出异常,请使用Long VARIABLE来处理此问题。integer不能支持大量变量data@dkb是的,我理解,但我期望的是限制控制器本身的大小或最大值。@如果我使用了长thereRefer:,此功能正在等待实现,但有一些解决方法,仍然存在的问题将持续存在,因为长id必须先保存值,然后才能对其进行验证,所以要么更改为字符串并进行验证,要么使用自定义异常处理程序。听起来很有帮助。但是有没有办法限制控制器本身的大小或最大值。对不起,但是我不知道还有其他方法可以做到这一点。这是否意味着我们作为id发送的值必须介于-9223372036854775808到9223372036854775807之间,以便我们可以应用@Max@SudipBolakhe是的,这肯定是变量的限制,检查整数,我会工作的。如你所料