Swagger报错:AbstractSerializableParameter + NumberFormatException

说明

项目启动正常,打开Swagger页面报错。

Swagger能够正常使用,接口也能够正常访问,就只是Swagger启动的时候,报出一个错误。

报错信息

AbstractSerializableParameter:Illegal DefaultValue null for parameter type integer

java.lang.NumberFormatException: For input string: ""
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[na:na]
	at java.base/java.lang.Long.parseLong(Long.java:721) ~[na:na]
	at java.base/java.lang.Long.valueOf(Long.java:1163) ~[na:na]
	at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

原因

Swagger自己的Bug,Swagger高版本已经修复。

不升级Swagger版本的情况下,可以引入高版本的 annotations 和 models,替换基础包中对应的包。注意,高版本的包,必须放在基础包的前面,才会优先生效。

依赖代码

		<!-- 为解决Swagger启动报错,引入高版本 annotations 和 models ;必须放在 swagger2 和 swagger-ui 前,才能优先生效-->
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
			<version>1.5.21</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-models</artifactId>
			<version>1.5.21</version>
		</dependency>
		<!-- Swagger 基础包 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>

参考

【Swagger异常】AbstractSerializableParameter:Illegal DefaultValue null for parameter type integer解决方案

猜你喜欢

转载自blog.csdn.net/sgx1825192/article/details/132307780