访问swagger文档报错Illegal DefaultValue 1024 for parameter type integer,java.lang.NumberFormatException
2023-06-13 09:13:24 时间
后台报错问题日志
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’ 异常。
解决办法
- 修改源码
- 下载源码下来把if (this.example == null) 判定改成 if (this.example == null || example.isEmpty())
- 调整依赖(推荐)
- 把swagger2的swagger-models排除,添加版本为1.5.21的swagger-models
<!-- 解决 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文档地址不再报错。
呜啦啦啦啦 看官喜欢的话点赞收藏或者关注一下吧
相关文章
- java调用c++的几种方式
- java转换字符串为时间_JAVA字符串转日期或日期转字符串
- Java四舍五入保留小数点后几位
- java bufferedwriter 编码,Java BufferedWriter对象与utf-8
- java backoff_Java BackOff类代码示例
- java传真发送,用Java发送传真解决之道
- java启动器_JAVA基础:Java 启动器如何查找类
- Java实现——Dom4j读写XML文件
- java通过拦截器实现项目每次执行sql耗时统计,可配置是否打印
- 【说站】Java中Stream是什么
- 【Java】jar启动的java程序报错FileNotFoundException
- JAVA读取csv文件_java读取csv文件某一列
- 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )
- 【Java AWT 图形界面编程】LayoutManager 布局管理器 ③ ( BorderLayout 布局 )
- 【错误记录】Java AWT 图形界面编程报错 ( Exception in thread “main“ java.awt.AWTError: BoxLayout can‘t be shared )
- java基础学习总结——面向对象1详解编程语言
- 机制利用Redis Java实现过期机制(redisjava过期)
- 使用Java设置Redis密码(redis密码java)
- Java如何启动MySQL?(java启动mysql)
- Java革命Oracle旗下的程序设计利器(java简介oracle)
- Java程序建立Oracle数据库表的实现方式(java建oracle表)
- 安装Oracle JDK 从Java进入下一个级别(oracle下载java)
- Java编程思想里的泛型实现一个堆栈类分享