打開swagger文檔報空指針異常
java.lang.NullPointerException: nullat springfox.documentation.oas.mappers.SchemaMapper.model(SchemaMapper.java:97)at springfox.documentation.oas.mappers.SchemaMapper.mapModel(SchemaMapper.java:85)at springfox.documentation.oas.mappers.ServiceModelToOpenApiMapperImpl.fromRepresentation(ServiceModelToOpenApiMapperImpl.java:187)at springfox.documentation.oas.mappers.ServiceModelToOpenApiMapper.map(ServiceModelToOpenApiMapper.java:216)at springfox.documentation.oas.mappers.ServiceModelToOpenApiMapperImpl.mapOperation(ServiceModelToOpenApiMapperImpl.java:113)at springfox.documentation.oas.mappers.ServiceModelToOpenApiMapper.mapOperations(ServiceModelToOpenApiMapper.java:283)at springfox.documentation.oas.mappers.ServiceModelToOpenApiMapper.lambda$mapPaths$4(ServiceModelToOpenApiMapper.java:264)at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
使用排除法,定位到是某個新加的controller方法引起的,逐漸嘗試,發現是方法的返回值為void引起的,只要返回值不是void,就能正常打開,服了,還是準備換spring doc吧(哭笑)
問了ai,大概是這個原因:
-
Springfox Bug:某些版本(尤其是?
3.0.0
)的?springfox-oas
?模塊在解析?Void
?類型時仍然會觸發?NullPointerException
,因為內部?SchemaMapper
?沒有正確處理?Void
?類型的模型映射。 -
OAS 3.0 兼容性問題:Springfox 對 OpenAPI 3.0 的支持不夠完善,
void
/Void
?方法在某些情況下無法正確生成 Schema。