spring boot swagger出现NumberFormatException异常

Updated on in 程序人生 with 0 views and 0 comments

异常信息如下:

java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_281]
at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_281]
at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_281]
at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]

进入AbstractSerializableParameter类的getExample方法(swagger-models包下)

image.png

方法中只进行了NULL判断,没有进行空字符串的判断

将版本升级后在看代码解决了此问题,升级后的源码如下,多加了一个isEmpty的判断,原来是没有这个判断的

@JsonProperty("x-example")
    public Object getExample() {
        if (example == null || example.isEmpty()) {
            return example;
        }
        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;
    }

pom文件修改

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${spring-swagger.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>${swagger-models.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${spring-swagger.version}</version>
        </dependency>
<spring-swagger.version>2.9.2</spring-swagger.version>
        <swagger-models.version>1.5.22</swagger-models.version>

标题:spring boot swagger出现NumberFormatException异常
作者:wenyl
地址:http://www.wenyoulong.com/articles/2021/06/23/1624448801216.html