Ich habe ein Spring Boot-Projekt mit Prallbox über Springbox integrieren möchten.Spring Boot + Springbox Swagger Fehler
Ich habe meine Spring Boot App und läuft alles gut.
Jedoch, nachdem ich springbox hinzugefügt habe, kann es Unit-Test nicht bestehen.
Hier sind die Details, die ich im Projekt hinzugefügt habe.
Für pom.xml
, hinzugefügt
<!--Swagger io for API doc-->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-core</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
dann mit einer Prahlerei Config-Klasse
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket booksApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.regex("/.*"))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("blah")
.description("blah.")
.termsOfServiceUrl("http://www.blah.com.au")
.contact("blah")
.build();
}
}
Der Fehler, den ich immer bin, wenn mvn clean package
laufen ist
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined in URL [jar:file:/Users/jasonfeng/.m2/repository/io/springfox/springfox-spring-web/2.2.2/springfox-spring-web-2.2.2.jar!/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [java.util.List]: : No qualifying bean of type [org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping] found for dependency [collection of org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping] found for dependency [collection of org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
die Version ich verwende ist
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
</parent>
danke für die Freigabe der Folge – fehguy
können Sie dies erreichen mit der Antwort von @Nish –
Wenn ich die Configuration Annotation entfernt, dann habe ich pop-up: "Kann nicht Basis-URL abzuleiten. Dies ist üblich, wenn dynamische Servlet verwenden Registrierung oder wenn die API hinter einem API-Gateway ist. Die Basis-URL ist die Wurzel von wo alle Swagger-Ressourcen bedient werden ". Die Lösung unten mit Profilen funktioniert. – Maksim