解决swagger主页访问,返回报错500问题

 更新时间:2024年09月30日 12:37:57   作者:郝猿  
在使用Swagger时遇到500错误,通过仔细的debug发现问题源于注解使用不当,具体表现为一个接口的入参被错误地注解了三个参数,而实际上只有两个,这导致了Swagger在解析时抛出了NullPointerException异常,解决方法是删除错误的第三个参数的注解

swagger主页访问,返回报错500

报错日志

下面展示一些 内联代码片

java.lang.NullPointerException: null
    at springfox.documentation.swagger2.mappers.RequestParameterMapper.bodyParameter(RequestParameterMapper.java:264)
    at springfox.documentation.swagger2.mappers.RequestParameterMapper.mapParameter(RequestParameterMapper.java:149)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper.beforeMappingOperations(ServiceModelToSwagger2Mapper.java:125)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl.mapOperation(ServiceModelToSwagger2MapperImpl.java:109)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper.mapOperations(ServiceModelToSwagger2Mapper.java:270)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper.lambda$mapApiListings$2(ServiceModelToSwagger2Mapper.java:258)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
    at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2897)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:423)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper.mapApiListings(ServiceModelToSwagger2Mapper.java:253)
    at springfox.documentation.swagger2.mappers.ServiceModelToSwagger2MapperImpl.mapDocumentation(ServiceModelToSwagger2MapperImpl.java:48)
    at springfox.documentation.swagger2.web.Swagger2ControllerWebMvc.getDocumentation(Swagger2ControllerWebMvc.j

这个问题找起来,需要慢慢debug

在(RequestParameterMapper.java:264)的地方打断点

找到报错的swagger注解类,基本上都是注解使用错误

我这问题是入参是两个参数

注解缺注明了三个参数,导致swagger报空指针

删除第三个swagger 入参注解就ok了

由于swagger报错不会提示具体是哪个类的注解有错误

所以需要慢慢的debug 循环

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • idea添加数据库图文教程

    idea添加数据库图文教程

    这篇文章主要介绍了idea添加数据库图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详解Java中的File文件类以及FileDescriptor文件描述类

    详解Java中的File文件类以及FileDescriptor文件描述类

    在Java中File类可以用来新建文件和目录对象,而FileDescriptor类则被用来表示文件或目录的可操作性,接下来我们就来详解Java中的File文件类以及FileDescriptor文件描述类
    2016-06-06
  • Java并发编程中的CompletableFuture使用详解

    Java并发编程中的CompletableFuture使用详解

    这篇文章主要介绍了Java并发编程中的CompletableFuture使用详解,Future接口定义了操作异步任务执行的一些方法,如获取异步任务执行的结果、取消任务的执行、判断任务是否被取消,判断任务是否执行完毕等,需要的朋友可以参考下
    2023-12-12
  • Java中的Semaphore信号量简单使用代码实例

    Java中的Semaphore信号量简单使用代码实例

    这篇文章主要介绍了Java中的Semaphore信号量简单使用代码实例,Semaphore是用来保护一个或者多个共享资源的访问,Semaphore内部维护了一个计数器,其值为可以访问的共享资源的个数,一个线程要访问共享资源,需要的朋友可以参考下
    2023-12-12
  • Java高并发下锁的优化详解

    Java高并发下锁的优化详解

    这篇文章主要介绍了Java高并发下锁的优化详解,锁是最常用的同步方法之一,在高并发的环境下,激烈的锁竞争会导致程序的性能下降,下面是一些关于锁的使用建议,可以把这种副作用降到最低,需要的朋友可以参考下
    2024-01-01
  • 通过JDK源码学习InputStream详解

    通过JDK源码学习InputStream详解

    InputStream抽象类是所有字节输入流的类的超类。这篇文章主要给大家介绍了关于通过JDK源码学习InputStream的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • 利用keytools为tomcat 7配置ssl双向认证的方法

    利用keytools为tomcat 7配置ssl双向认证的方法

    双向认证和单向认证原理基本差不多,只是除了客户端需要认证服务端以外,增加了服务端对客户端的认证,下面这篇文章主要介绍了利用keytools为tomcat 7配置ssl双向认证的方法,需要的朋友可以借鉴,下面来一起看看吧。
    2017-02-02
  • SpringBoot 对象转换 MapStruct的实现小结

    SpringBoot 对象转换 MapStruct的实现小结

    MapStruct是一个基于注解的Java对象映射工具,通过在编译时生成映射代码实现高效的对象转换,下面就来详细的介绍一下SpringBoot 对象转换 MapStruct的实现,感兴趣的可以了解一下
    2026-02-02
  • SpringBoot统计接口调用耗时的三种方式

    SpringBoot统计接口调用耗时的三种方式

    在实际开发中,了解项目中接口的响应时间是必不可少的事情,SpringBoot 项目支持监听接口的功能也不止一个,接下来我们分别以 AOP、ApplicationListener、Tomcat 三个方面去实现三种不同的监听接口响应时间的操作,需要的朋友可以参考下
    2024-06-06
  • 基于spring-security 401 403错误自定义处理方案

    基于spring-security 401 403错误自定义处理方案

    这篇文章主要介绍了基于spring-security 401 403错误自定义处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论