解决Swagger2.9.2的NumberFormatException异常,我领悟了人生

【转载请注明】:

原文出处https://www.cnblogs.com/jstarseven/p/11778377.html     作者:jstarseven    码字挺辛苦的.....  


问题发现

Swagger2.9.2版本,在访问swagger首页的时候,控制台报错。

 1 WARN 19699 --- [nio-1111-exec-4] i.s.m.p.AbstractSerializableParameter    : Illegal DefaultValue null for parameter type integer
 2
 3 java.lang.NumberFormatException: For input string: ""
 4     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]
 5     at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_171]
 6     at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_171]
 7     at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
 8     at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source) ~[na:na]
 9     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
10     at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
11     at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:687) [jackson-databind-2.9.6.jar:2.9.6]

问题原因

查看swagger2.9.2源代码swagger-models-1.5.20.jar中io.swagger.models.parameters.AbstractSerializableParameter,发现是由于实体类使用@ApiModelProperty时,example属性没有赋值导致的,在AbstractSerializableParameter的getExample方法中会将数值属性的example的转换数值类返回,example的默认值是"",因此当example没有赋值时,会出现上面的异常。

swagger-models-1.5.20中源代码:

解决问题的四种办法:

一、勤劳致富法:将每一个数值类型上@ApiModelProperty的example都赋值数字字符串,这也太累了吧!

二、掩耳盗铃法:修改springboot输出日志,将io.swagger.models.parameters.AbstractSerializableParameter文件的日志级别设置成error,这也太自欺欺人了吧!

三、刨根问底法:不就是1.5.20的代码出的问题吗,我自己改了,重新打个包,不就行了嘛!老铁666,大佬就你了!

四、懒人模式法:发现swagger-models-1.5.22中解决了此问题,那我直接导入覆盖,岂不美哉,哈哈哈!一秒刷爆,继续开发,nice !

swagger-models-1.5.22中源代码:

 替换:



-END-

原文地址:https://www.cnblogs.com/jstarseven/p/11778377.html

时间: 2024-07-30 20:49:15

解决Swagger2.9.2的NumberFormatException异常,我领悟了人生的相关文章

swagger2 升级2.9.2 后 NumberFormatException 异常

*swagger2 升级2.9.2 后 NumberFormatException 异常** 问题:升级后再 Integer Long double float 等 number 类型上出现了 java.lang.NumberFormatException 原因:number 类型 在 swagger 的 ApiImplicitParam 注解上 有一个 example 默认值是 "" 空字符串 在启动时会先生成默认值 空字符 直接转number 肯定抛异常 java.lang.Num

[Ubuntu/pip] 解决 pip 安装 lxml 出现 x86_64-linux-gnu-gcc 异常

安装 pip : $ wget https://bootstrap.pypa.io/get-pip.py ... $ sudo python get-pip.py install 使用 pip 安装/升级 lxml(升至 3.3.5) 时出现以下报错: "error: command 'x86_64-linux-gnu-gcc' failed with exit status 1" 这是因为一些依赖包没有安装,可以使用以下命令更新依赖包: $sudo apt-get build-dep

解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM

错误提示: SEVERE: Servlet.service() for servlet [example] in context with path [/myproject] threw exception [Request processing failed; nested exception is net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' is not available to the JVM. S

解决linux下root运行Elasticsearch异常

在CentOS 6.5 上运行Elasticsearch 2.3,异常如下: Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap

解决ActiveMQ的“Invalid broker URI”异常的历程

000 最近碰到一个问题,把解决的过程记录下来. 故障原因 同事的应用上线,Tomcat无法正常启动.抛出这样的异常: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:|PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'bro

Swift教程_swift常见问题(0005)_完美解决Cannot override 'dealloc'异常

Swift教程_swift常见问题(0001)_CoreData: warning: Unable to load class named 'xxx' for entity 'xxx' Swift教程_swift常见问题(0002)_完美处理SourceKitService Crashed异常.6.1.1大部分已经修复 Swift教程_swift常见问题(0003)_storyboard改动不生效 Swift教程_swift常见问题(0004)_swift代码不能自己主动提示和补全 Swift教

解决Tomcat 7遇到StackOverflowError的异常

转自: 一.异常描述 使用Tomcat7启动一个项目报错,日志如下: 一月 01, 2016 11:38:08 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:mynewdpi' did not f

解决tmux在PuTTY下工作异常的问题

ubuntu 默认系统配置文件位置/usr/share/byobu/profiles/tmux 来自 PC通过PuTTY连接到VPS,在使用VPS上安装的tmux时遇到了一些小问题.主要是因为PuTTY是一个终端仿真器,跟真正的终端有一定差别,需要一些额外设置.这里整理了一些遇到的问题,并提供解决方法. 开始之前先介绍一个查看按键的控制序列的方法,后面会用到.执行: cat > /dev/null 然后按下想要查看的按键,就能看到对应的控制序列.如图一所示的 ^[[A ,就是↑方向键对应的序列.

RSA 分段加解密【解决“不正确的长度”的异常】

方法1: RSA 是常用的非对称加密算法.最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致. .NET Framework 中提供的 RSA 算法规定: 待加密的字节数不能超过密钥的长度值除以 8 再减去 11(即:RSACryptoServiceProvider.KeySize / 8 - 11),而加密后得到密文的字节数,正好是密钥的长度值除以 8(即:RSACryptoServiceProvider.KeySize / 8). 所以,如果要加密较长的数据,则可以