我有下面的弹簧启动配置,当服务启动时出现以下错误,我不确定为什么会这样。我遵循了一个教程,它对他们有用。
java.lang.IllegalStateException: Multiple Dockets with the same group name are not supported. The following duplicate groups were discovered. default
@Configuration
@EnableSwagger2
@Import(BeanValidatorPluginsConfiguration.class)
public class SpringFoxConfig {
@Bean
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("test.rest"))
.paths(PathSelectors.ant("/test/**"))
.build()
.apiInfo(apiInfo());
}
// Describe the apis
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("test")
.description("Test")
.version("1.0.0")
.license("vvv")
.build();
}
}
我也有另一个配置
@OurApp
@EnableSwagger2
public class CoreApp extends OurApp {
}
答案 0 :(得分:4)
在这里,您尝试使用相同的组名来执行多个Dockets,这是不可接受的。请查看提供的链接。
groupName(java.lang.String groupName)如果多个实例 收件箱存在,每个收件箱必须具有由 这种方法。 Documentation
public class Docket implements DocumentationPlugin {
public static final String DEFAULT_GROUP_NAME = "default"; }
您可以看到上面的DocumentPlugin具有默认的组名。
public Docket(DocumentationType documentationType) {
this.apiInfo = ApiInfo.DEFAULT;
this.groupName = "default";
以上默认为组名。
因此,您需要为两个资料夹使用两个不同的组名。
您需要做的就是如下更改代码。只需覆盖现有的默认组名即可。
@Configuration
@EnableSwagger2
@Import(BeanValidatorPluginsConfiguration.class)
public class SpringFoxConfig {
@Bean
public Docket apiDocket() {
String groupName = "Swagger";
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("test.rest"))
.paths(PathSelectors.ant("/test/**"))
.build()
.groupName(groupName)
.apiInfo(apiInfo());
}
// Describe the apis
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("test")
.description("Test")
.version("1.0.0")
.license("vvv")
.build();
}
}
答案 1 :(得分:0)
好像您给的组名相同,但不被接受,请检查并正确设置组名。