闊歩研究ノート3java.lang.NumberFormatException:入力文字列の場合:““

問題現象:

今日のswaggerの学習プロセスで、swaggerUIページを開始した後、バックグラウンドでエラーが報告されました。

java.lang.NumberFormatException:入力文字列の場合: ""


問題分析:

このエラーは、整数データ型の形式が異常であることを意味します。空の文字列が整数データ型に渡され、エラーが発生します。

オンライン情報を参照することにより、次のことを知ることができます。

これは、springfox-swagger2(2.9.2)がswagger-models(1.5.20)に 依存して いるため です。

そして、このバージョンのSwaggerは、空の文字列に割り当てられたデフォルトのChina-AfricaStringプロパティのエンティティクラスタイプになります。

したがって、swagger-models依存関係の上位バージョンを手動で追加する必要があります!!!!!!

したがって、swaggerUIページを開始した後、この時点でのエンティティクラス非String属性にはデフォルト値なく、NumberFormatException:入力文字列の場合: ""が表示されます。


解決:

        <!--swaggerUI-->
        <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>

swagger-models(1.5.21)の依存関係を追加するだけです:

        <!--swaggerUI-->
        <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>
        <!--规范model实体类注解-->
        <!--如果不加,则当实体类非String属性没有默认值时,会出现NumberFormatException: For input string:"",
        这是因为springfox-swagger2(2.9.2)依赖于swagger-models(1.5.20)
        该版本的swagger只判断了null没有判断空字串符
        所以会将实体类中非String类型的属性默认赋值为空字符串;
        而1.5.21版本之后新增了空串判断,所以就不会有该问题了-->
        <!--<dependency>-->
            <!--<groupId>io.swagger</groupId>-->
            <!--<artifactId>swagger-models</artifactId>-->
            <!--<version>1.5.21</version>-->
        <!--</dependency>-->

再起動します。エラーは発生しません。

 

おすすめ

転載: blog.csdn.net/weixin_42585386/article/details/109360791