栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

swagger用@ConditionalOnProperty控制接口文档显示报To display the conditions report re-run your application with

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

swagger用@ConditionalOnProperty控制接口文档显示报To display the conditions report re-run your application with

问题背景

今天在新建一个springboot项目时,按照以往的流程引入maven;最后在引入swagger并运用@ConditionalOnProperty来控制接口文档显示时报Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.
具体报错如下:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-03-23 21:06:56.426 ERROR 248 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.NullPointerException: null
	at springfox.documentation.spi.service.contexts.Orderings$8.compare(Orderings.java:113) ~[springfox-spi-2.4.0.jar:2.4.0]
	at springfox.documentation.spi.service.contexts.Orderings$8.compare(Orderings.java:110) ~[springfox-spi-2.4.0.jar:2.4.0]
	at com.google.common.collect.ComparatorOrdering.compare(ComparatorOrdering.java:37) ~[guava-29.0-jre.jar:na]
	at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) ~[na:1.8.0_101]
	at java.util.TimSort.sort(TimSort.java:220) ~[na:1.8.0_101]
	at java.util.Arrays.sort(Arrays.java:1438) ~[na:1.8.0_101]
	at com.google.common.collect.Ordering.sortedCopy(Ordering.java:842) ~[guava-29.0-jre.jar:na]
	at springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider.requestHandlers(WebMvcRequestHandlerProvider.java:51) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper$1.apply(documentationPluginsBootstrapper.java:122) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper$1.apply(documentationPluginsBootstrapper.java:119) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at com.google.common.collect.Iterators$6.transform(Iterators.java:783) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1333) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:268) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:232) ~[guava-29.0-jre.jar:na]
	at com.google.common.collect.FluentIterable.toList(FluentIterable.java:619) ~[guava-29.0-jre.jar:na]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper.defaultContextBuilder(documentationPluginsBootstrapper.java:110) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper.buildContext(documentationPluginsBootstrapper.java:101) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper.onApplicationEvent(documentationPluginsBootstrapper.java:91) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at springfox.documentation.spring.web.plugins.documentationPluginsBootstrapper.onApplicationEvent(documentationPluginsBootstrapper.java:53) ~[springfox-spring-web-2.4.0.jar:2.4.0]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.4.jar:2.6.4]
	at com.damon.shop.ShopApplication.main(ShopApplication.java:11) [classes/:na]

当springboot用较高版本的2.6.4时 Swagger2Config中必须添加@ConditionalOnProperty(name = “swagger.enable”,havingValue = “true”)
注释注解就启动就会报错

@Configuration
@EnableSwagger2
@ConditionalOnProperty(name = "swagger.enable",havingValue = "true")// 在springboot用较高版本的2.6.4注释启动会报错
public class Swagger2Config {
    @Bean
    public Docket createRestApi() {
        return new Docket(documentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.damon.shop.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot 测试使用 Swagger2 构建RESTful API")
                .contact(new Contact("DamonYuan",  "",  ""))
                .version("1.0")
                .description("API 描述")
                .build();
    }
}

本人在yml中添加了还是报错;注释了yaml就不会报错,但是问题是就没法运用swagger测试接口

swagger:
  enable: true
解决问题
  
        org.springframework.boot
        spring-boot-starter-parent
        2.6.4
        
       
         
    
....

      io.springfox
      springfox-swagger-ui
      2.4.0
 
 
      io.springfox
      springfox-swagger2
      2.4.0
 

== 将springboot中的version降低为2.5.0 或者 2.1.15.RELEASE等版本就可以了。主要原因是swagger与springboot这两个版本可能不兼容导致的==

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号