首页 > 其他分享 >Knife4j文档请求异常

Knife4j文档请求异常

时间:2023-04-22 17:33:44浏览次数:31  
标签:Knife4j 请求 模块 文档 guigutool 转换器 new EnableSwagger2WebMvc 注解

通常遇到这个异常信息,都是由于在SpringBoot项目中,分不同的模块开发。
注解配置 @EnableSwagger2WebMvc不在启动类上,而是加到了其他模块的注解中导致的。

我的是common一个单独的模块,在common模块中配置了WebMvcConfig。
然后在WebMvcConfig类上面加了注解@EnableSwagger2WebMvc.

那么,解决方法也很简单,在启动类上也添加上注解@EnableSwagger2WebMvc即可。

/**
 * @Author: KingWang
 * @Date: 2023/4/9
 * @Desc:
 **/
@Slf4j
@Configuration
//@EnableSwagger2WebMvc 分模块下,这个注解不在启动类模块中,是无效的
public class WebMvcConfig extends WebMvcConfigurationSupport {


    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //swagger文档需要添加下面2行
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    /**
     * 扩展mvc框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("扩展消息转换器...");
        //创建消息转换器对象
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        //设置对象转换器,底层使用Jackson将java对象转为Json
        messageConverter.setObjectMapper(new JacksonObjectMapper());
        //将上面的消息转换器对象追加到mvc框架的转换器容器中
        converters.add(0, messageConverter);
    }


    @Bean
    public Docket adminApiConfig(){
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder tokenPar = new ParameterBuilder();
        tokenPar.name("token")
                .description("用户token")
                .defaultValue("")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();
        pars.add(tokenPar.build());
        //添加head参数end

        Docket adminApi = new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //只显示admin路径下的页面
                .apis(RequestHandlerSelectors.basePackage("com.guigutool.system.controller"))
                .paths(PathSelectors.regex("/admin/.*"))
                .build()
                .globalOperationParameters(pars);
        return adminApi;
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("guigutool", "http://guigutool.com", "[email protected]"))
                .build();
    }
}

启动类中加上该注解:

@EnableSwagger2WebMvc
@SpringBootApplication
@MapperScan("com.guigutool.system.mapper")
public class ServiceAuthApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceAuthApplication.class,args);
    }
}

标签:Knife4j,请求,模块,文档,guigutool,转换器,new,EnableSwagger2WebMvc,注解
From: https://www.cnblogs.com/30go/p/17343541.html

相关文章

  • 13、Argo Rollouts请求分析和渐进式交付
    请求分析和渐进式交付ArgoRollouts中的分析(Analysis)是用于根据阶段性交付效果的测量结果来推动渐进式交付的机制◼分析机制通过分析模板(AnalysisTemplateCRD)定义,而后在Rollout中调用它◼运行某次特定的交付过程时,ArgoRollouts会将该Rollout调用的AnalysisTemplate实例......
  • python多线程接口请求
    importthreadingimportrequestsrequests.packages.urllib3.disable_warnings()urls_list=["http://127.0.0.1:5000"for_inrange(1,101)]response_ok=0response_error=0defget_response_code(url):globalresponse_errorglobalr......
  • 两天学会flask(四)---请求对象request(5分钟)
    request是flask框架的全局对象,你可以通过它来获得当前进入的请求数据,如果是在多线程环境下,flask可以保证你所使用的request对象就是当前这个线程所处理的请求。关于request,最让人感到疑惑的地方在于,明明是一个全局变量,在使用时却提供了当前时刻的请求数据,而且,不同线程之间互不干......
  • Java Selenium4 ChromeDriver获取指定的POST请求
    前言最近项目上需要去找某个网站对应的请求数据,但是这个网站有个奇怪的反爬机制,你如果直接去请求这个url(listPro)是获取不到数据的,它会返回一段加密后的js代码过来,如果在浏览器上执行也不行,需要在这个网站上执行,这段代码主要是加密设置一个cookie,我在浏览器上复制这个cookie后,可以......
  • python脚本打包与请求带session的区别
    pyinstaller-F-iD:\ico\123.icoXXX.py--key123456如何防止exe被反编译呢只需在打包命令后面加上--key命令即可,例如文章开头的命令可以更换为:pyinstaller-Fw--icon=h.icoauto_organize_gui.py--add-data="h.ico;/"--key123456123456是你用来加密的密钥,可以随......
  • PageOffice调用本地office实现多人在线同时编辑Word文档
    说明:多人同时在线编辑文件大多数会出现文档相互覆盖的问题,后保存的文档会覆盖先保存的文档。pageoffice的这个功能可以用程序控制不同用户打开文件后,编辑Word文档中属于自己的区域,并且不会互相影响。1、环境:前端:vue后端:springboot、pageoffice5.4.0.3版本vue+springboot集成pa......
  • XMLHttpRequest实现异步请求
    XMLHttpRequest基本概念XMLHttpRequest是一种用于在Web浏览器和服务器之间进行异步数据交换的技术。它可以在不重新加载页面的情况下向服务器发送HTTP请求,接收和处理来自服务器的响应,并更新网页的部分内容。XMLHttpRequest也被称为XHR,它是一种在Web开发中常用的JavaScriptAPI。......
  • request请求转发和请求重定向
    用户向服务器发送了一次HTTP请求,该请求肯能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的。根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect)两种。直接转发方式(Forward)客户端和浏......
  • Request请求参数中文乱码问题
    Tomcat8以下的默认编码格式是ISO-8859-1,8版本以上Tomcat已经把默认编码格式改为UTF-8,此篇博客主要是解决Tomcat8以下版本的中文乱码问题处理。一、Request请求参数中文乱码-POST解决方案请求参数如果存在中文数据,则会乱码解决方案:POST:设置输入流的编码req.setCharacterEnc......
  • 查找80端口请求数最高的前20个IP
    有时候业务的请求量突然上去了,那么这个时候我们可以查看下请求来源IP情况,如果是集中在少数IP上的,那么可能是存在攻击行为,我们使用防火墙就可以进行封禁。命令: netstat-anlp|grep80|greptcp|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|h......