Swagger 访问异常 控制台报错

环境
  • swagger版本: 2.9.2

  • maven信息:

         
             io.springfox
             springfox-swagger2
             2.9.2
         

         
             io.springfox
             springfox-swagger-ui
             2.9.2
         
异常信息
Illegal DefaultValue  for parameter type integer 
java.lang.NumberFormatException: For input string: ""
log
    
    
        io.swagger
        swagger-annotations
        1.5.22
    

    
        io.swagger
        swagger-models
        1.5.22
    
    
处理办法
  • 添加maven配置:
        
        
            io.swagger
            swagger-annotations
            1.5.22
        

        
            io.swagger
            swagger-models
            1.5.22
        
        
原理

1.5.20 源码

@JsonProperty("x-example")
   public Object getExample() {
       if (this.example == null) {
           return null;
       } else {
           try {
               if ("integer".equals(this.type)) {
                   return Long.valueOf(this.example);
               }

               if ("number".equals(this.type)) {
                   return Double.valueOf(this.example);
               }

               if ("boolean".equals(this.type) && ("true".equalsIgnoreCase(this.example) || "false".equalsIgnoreCase(this.defaultValue))) {
                   return Boolean.valueOf(this.example);
               }
           } catch (NumberFormatException var2) {
               LOGGER.warn(String.format("Illegal DefaultValue %s for parameter type %s", this.defaultValue, this.type), var2);
           }

           return this.example;
       }
   }

1.5.22 源码

@JsonProperty("x-example")
    public Object getExample() {
        if (this.example != null && !this.example.isEmpty()) {
            try {
                if ("integer".equals(this.type)) {
                    return Long.valueOf(this.example);
                }

                if ("number".equals(this.type)) {
                    return Double.valueOf(this.example);
                }

                if ("boolean".equals(this.type) && ("true".equalsIgnoreCase(this.example) || "false".equalsIgnoreCase(this.defaultValue))) {
                    return Boolean.valueOf(this.example);
                }
            } catch (NumberFormatException var2) {
                LOGGER.warn(String.format("Illegal DefaultValue %s for parameter type %s", this.defaultValue, this.type), var2);
            }

            return this.example;
        } else {
            return this.example;
        }
    }

分析:从上面的代码可以看出对example的判断是不同的,增加了当example为空的时候,直接返回example,所以不会再报错。

注:

原理部分引用自:Swagger2.9.2的NumberFormatException -

你可能感兴趣的:(Swagger 访问异常 控制台报错)