本文主要是介绍修复Swagger2 java.lang.NumberFormatException,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是由于实体类使用@ApiModelProperty时,example属性没有赋值导致的, 在AbstractSerializableParameter的getExample方法中会将数值属性的example的转换数值类返回, example的默认值是"",因此当example没有赋值时,会出现上面的异常。getExample方法如下:
@JsonProperty("x-example")public Object getExample() {if (example == null) {return null;}try {if (BaseIntegerProperty.TYPE.equals(type)) {return Long.valueOf(example);} else if (DecimalProperty.TYPE.equals(type)) {return Double.valueOf(example);} else if (BooleanProperty.TYPE.equals(type)) {if ("true".equalsIgnoreCase(example) || "false".equalsIgnoreCase(defaultValue)) {return Boolean.valueOf(example);}}} catch (NumberFormatException e) {LOGGER.warn(String.format("Illegal DefaultValue %s for parameter type %s", defaultValue, type), e);}return example;}
尝试了在 int 累类型上补全 example 无果后,还是通过修改 POM 来解决报错问题。
@ApiModelProperty(value = "测试字段", example = "123")
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version><exclusions><exclusion><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></exclusion><exclusion><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId></exclusion></exclusions> </dependency> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version> </dependency> <dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.21</version> </dependency> <dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>1.5.21</version> </dependency>
这篇关于修复Swagger2 java.lang.NumberFormatException的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!