Java web项目集成Swagger报AbstractSerializableParameter类的异常问题

Java web项目集成Swagger报AbstractSerializableParameter类的异常问题

异常信息大致如下:

[nio-1111-exec-4] i.s.m.p.AbstractSerializableParameter : Illegal DefaultValue null for parameter type integer

java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]

原因

  • Swagger每一个@ApiModelProperty注解里example属性都会进行非空判断.但是,它在判断的语句里只判断了null的情况,没有判断是空字符串的情况,所以解析数字的时候就会报这个异常。
  • swagger-models 默认是1.5.20,这个版本是没有解决上面这个问题;而在较新的版本1.5.22是解决了这个问题。

解决

<dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
      <exclusions>
            <exclusion>
                  <groupId>io.swagger</groupId>
                  <artifactId>swagger-models</artifactId>
            </exclusion>
      </exclusions>
</dependency>
<dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-models</artifactId>
      <version>1.5.22</version>
</dependency>

PS:引用了新版本的swagger-models包(1.5.22)就不会有这个问题了

相关推荐