项目场景:
swagger访问报:2022-04-30 23:38:55.801 [https-jsse-nio-8888-exec-1] WARN i.s.m.p.AbstractSerializableParameter - [getExample,421] - Illegal DefaultValue for parameter type integer java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:601) at java.lang.Long.valueOf(Long.java:803) at
原因分析:
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>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.22</version>
</dependency>
本文分析了一个在使用Swagger时遇到的问题,即当@ApiModelProperty的example属性为空字符串时,会导致Long.parseLong异常。原因是Swagger在1.5.20版本中未处理这种情况。解决方案是升级Swagger的相关依赖到更高版本,如1.5.22,以避免此类错误。
1353

被折叠的 条评论
为什么被折叠?



