Swagger2異常:Illegal DefaultValue null for parameter type integer java


一、異常分析:

Illegal DefaultValue null for parameter type integer`和`NumberFormatException: For input string: ""

從上面這句可以看出,有個默認值是空字符串的變量轉換成Integer類型時異常。

at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]

根據上面這句報錯信息,點進去AbstractSerializableParameter.java:412可以看到

if(BaseIntegerProperty.TYPE.equals(type)){

    return Long.valueOf(example);

}

就是說如果實體屬性類型是Integer,就把example轉為Long類型,而example默認為"",導致轉換錯誤。

二、解決辦法:

方法一:
實體類中,Integer類型的屬性加@ApiModelProperty時,必須要給example參數賦值,且值必須為數字類型。

@ApiModelProperty(value = "試卷ID",example = "1")
private int pageId;

  

方法二:

忽略原版本的swagger-annotations和swagger-models,添加1.5.21版本的

<!--swagger依賴-->

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

<!--解決進入swagger頁面報類型轉換錯誤,排除2.9.2中的引用,手動增加1.5.21版本-->

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM