前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swagger2 Illegal DefaultValue null for parameter type integer

swagger2 Illegal DefaultValue null for parameter type integer

作者头像
陈灬大灬海
发布2020-03-19 21:44:37
1.5K0
发布2020-03-19 21:44:37
举报

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

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

定位问题

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

代码语言:javascript
复制
    @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-修改代码

代码语言:javascript
复制
    @ApiModelProperty("开始时间,时间戳")
    private Long timeBegin;

修改为

代码语言:javascript
复制
    @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依赖,如下代码

代码语言:javascript
复制
    <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,完美解决!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题,为了方便调试,引入了swagger2,但是在第一次访问的时候总是报
  • 定位问题
  • 解决
    • 方式1-修改源码
      • 方式2-修改代码
        • 方式3-修改依赖
          • exclusions排除依赖
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档