在打开Swagger文档时报错 java.lang.NumberFormatException: For input string: ""
但是Swagger文档依然可以正常访问。
环境
springboot 2.2.1.RELEASE
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
问题原因
因为2.9.2
版本依赖的swagger-models
与swagger-anotations
是1.5.0
版本的,这个版本会造成此bug,在后续版本中便解决了此bug。
在使用@ApiModelProperty
注解时,没有指定example,这个属性默认是空字符串,所以会报此bug。
解决办法
方案一
在@ApiModelProperty
注解中指定example,例如@ApiModelProperty(value="id", example="1")
这里example的值是可以随便指定的,但必须为Integer类型。
方案二
排除swagger-models
与swagger-annoanotations
依赖,自己引入更新版本的依赖,这个解决方案可能会造成依赖冲突,请根据自己的环境选择合适的版本。
<!--springboot 2.2.1.RELEASE-->
<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>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.22</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>