背景:swagger 版本为2.9.2
启动项目swagger报错 java.lang.NumberFormatException: For input string: “”
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]
at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_171]
at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_171]
at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
at sun.reflect.GeneratedMethodAccessor137.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:664) [jackson-databind-2.8.11.2.jar:2.8.11.2]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689) [jackson-databind-2.8.11.2.jar:2.8.11.2]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) [jackson-databind-2.8.11.2.jar:2.8.11.2]
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) [jackson-databind-2.8.11.2.jar:2.8.11.2]
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) [jackson-databind-2.8.11.2.jar:2.8.11.2]
解决办法有两种,个人觉得第二种更改配置更加方便
第一种方法: 更改依赖版本
造成文中头部的错误的原因是因为下面的依赖中
内部包含 1.5.20的swagger-models 和swagger-annotations 的依赖
错误原因: springfox-swagger 2.9.2使用的swagger-models版本(1.5.20)有bug,不填example会报错
改进步骤:
1:首先排除内部的两个依赖
2:添加较新版本的依赖
至此测试,发现上述 问题解决。
第二种方法: 更改配置
只需要在springboot yml中配置该类的日志打印级别为 error,简单实用
logging:
level:
io.swagger.models.parameters.AbstractSerializableParameter: error