前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >访问swagger文档报错Illegal DefaultValue 1024 for parameter type integer,java.lang.NumberFormatException

访问swagger文档报错Illegal DefaultValue 1024 for parameter type integer,java.lang.NumberFormatException

作者头像
共饮一杯无
发布2022-11-24 20:11:20
3290
发布2022-11-24 20:11:20
举报
文章被收录于专栏:Java升级打怪进阶之路

后台报错问题日志

代码语言:javascript
复制
2021-12-30 15:41:24.675  WARN [nio-9008-exec-1] [] i.s.m.p.AbstractSerializableParameter    [421] : Illegal DefaultValue 1024 for parameter type integer

java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Long.parseLong(Long.java:601)
	at java.lang.Long.valueOf(Long.java:803)
	at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412)
	at sun.reflect.GeneratedMethodAccessor149.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:689)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755)

问题排查

在AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412)打断点调试,可以发现代码执行到此处example的值为空字符串,执行Long.valueOf(this.example)会抛出’java.lang.NumberFormatException’ 异常。

在这里插入图片描述
在这里插入图片描述

解决办法

  1. 修改源码
  • 下载源码下来把if (this.example == null) 判定改成 if (this.example == null || example.isEmpty())
  1. 调整依赖(推荐)
  • 把swagger2的swagger-models排除,添加版本为1.5.21的swagger-models
代码语言:javascript
复制
<!--  解决 Illegal DefaultValue null for parameter type integer    异常  -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.21</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.10.5</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

调整后可以看到新的版本修改了这个判定逻辑。

在这里插入图片描述
在这里插入图片描述

上述一波操作后,访问swagger文档地址不再报错。

呜啦啦啦啦 看官喜欢的话点赞收藏或者关注一下吧

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 后台报错问题日志
  • 问题排查
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档