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)就不會有這個問題了