swagger2 Illegal DefaultValue null for parameter type integer

问题,为了方便调试,引入了swagger2,但是在第一次访问的时候总是报

Illegal DefaultValue null for parameter type integer 让人看着很不输入

定位问题

很明显说是NumberFormatException,查看AbstractSerializableParameter的getExample得知

    @JsonProperty("x-example")
    public Object getExample() {
        if (this.example == null) {
            return null;
        } else {
            try {
                if ("integer".equals(this.type)) {
                    return Long.valueOf(this.example);
                }

在进行转化的时候报错,在this.example == null判断的不对。

解决

方式1-修改源码

将源码下载下来,进行编辑,把判断部分修改为if (example == null || example.isEmpty())
之后将其打包上传到maven私服即可。
弊端,修改源码只能上传到私服,麻烦,也比较难

方式2-修改代码

    @ApiModelProperty("开始时间,时间戳")
    private Long timeBegin;

修改为

    @ApiModelProperty(value = "开始时间,时间戳",example = "0")
    private Long timeBegin;

很明显,最容易,但是改动的也不少。

方式3-修改依赖

看网上说在swagger-models 1.5.21版本修复了该问题

所以要升级版本

exclusions排除依赖


通过maven integration extension插件将swagger-models 1.5.20依赖排除
再引入1.5.21依赖,如下代码

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
      <exclusions>
        <exclusion>
          <artifactId>swagger-annotations</artifactId>
          <groupId>io.swagger</groupId>
        </exclusion>
      </exclusions>
    </dependency>

再查看源码

 

ok,完美解决!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈灬大灬海

万水千山总是情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值