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)就不会有这个问题了