我跑弹簧4 MVC嵌入码头9 我试图Swagger2工具插件,但我面对一个异常春Swagger2整合ServletContext的自动装配问题
Error creating bean with name 'documentationPluginsBootstrapper'
此异常的根本原因是
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.servlet.ServletContext] found for dependency [javax.servlet.ServletContext]: expected at least 1 bean which qualifies as autowire candidate for this dependency.
这是我SwaggerConfigClass
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private static final Logger logger = Logger.getLogger(SwaggerConfig.class);
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("TITLE")
.description("DESCRIPTION")
.version("VERSION")
.termsOfServiceUrl("http://terms-of-services.url")
.license("LICENSE")
.licenseUrl("http://url-to-license.com")
.build();
}
}
之后,我创建的工厂类
public class ServletContextFactory implements FactoryBean<ServletContext>,
ServletContextAware {
private ServletContext servletContext;
@Override
public ServletContext getObject() throws Exception {
return servletContext;
}
@Override
public Class<?> getObjectType() {
return ServletContext.class;
}
@Override
public boolean isSingleton() {
return true;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
}
,然后手动把它用在重新声明豆
@Bean
public DocumentationPluginsBootstrapper documentationPluginsBootstrapper(DocumentationPluginsManager documentationPluginsManager,
List<RequestHandlerProvider> handlerProviders,
DocumentationCache scanned,
ApiDocumentationScanner resourceListing,
TypeResolver typeResolver,
Defaults defaults) throws Exception {
return new DocumentationPluginsBootstrapper(documentationPluginsManager,
handlerProviders,
scanned,
resourceListing,
typeResolver,
defaults,
new ServletContextFactory().getObject());
}
,但仍然有一个例外(另一个异常)的NullPointerException作为下一
Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
那么任何人都可以提出一些解决这个自动装配问题的方法吗?
您是否使用Spring Boot?如果是,请将Bean注释更改为引导程序类上的配置。 – duffymo
@duffymo,我正在使用Spring MVC –
Spring还是Spring Boot? – duffymo