我在Sping Boot 中遇到了Swagger集成问题。看看代码和错误片段。
<properties>
<java.version>1.8</java.version>
<swagger.version>2.9.2</swagger.version>
</properties>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${swagger.version}</version>
</dependency>
-------------------应用类------------
@SpringBootApplication
@EnableSwagger2
public class ProducerApplication {
public static void main(String[] args) {
SpringApplication.run(ServletPocProducerApplication.class, args);
}
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
堆栈跟踪
org.springframework.context.ApplicationContextException: Failed to start bean
'documentationPluginsBootstrapper'; nested exception is
java.lang.NullPointerException: Cannot invoke
"org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()"
because the return value of
"springfox.documentation.spi.service.contexts.Orderings.patternsCondition(springfox.docume
ntation.RequestHandler)" is null
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.13.jar:5.3.13]
我该怎么办?
7条答案
按热度按时间tvokkenx1#
我通过在application.properties中添加“spring.mvc.pathmatch.matching-strategy=ant-path-matcher”来解决这个问题。
6mw9ycah2#
很长一段时间以来,我一直试图解决这个问题,解决方案是:
rlcwz9us3#
我知道这不能直接解决你的问题,但是考虑一下迁移到springdoc。Springfox在这一点上是如此的bug,使用起来很痛苦。我在2年前迁移到
springdoc
,因为它支持Spring WebFlux,我对此非常高兴。此外,它还支持Kotlin协程,我不确定Springfox是否支持。如果您决定迁移,
springdoc
甚至有一个迁移指南。drnojrws4#
添加这个“spring.mvc.pathmatch. matching-strategy =ant-path-matcher”到您的application.properties文件解决了这个问题。这是我使用的,我节省了很多麻烦。
piztneat5#
对于spring-boot和swagger-ui之间的集成,将库添加到项目依赖项列表中(不需要额外的配置):
tzxcd3kk6#
1tu0hz3e7#
我的建议是,当你使用spring-boot时,最好使用spring boot dependency for swagger。所以,spring-boot会照顾你的默认设置。