【问题标题】:spring mvc 4 and swagger 2 intergation not workingspring mvc 4和swagger 2集成不起作用
【发布时间】:2017-02-27 22:08:18
【问题描述】:

尝试了 2 3 天后,我有点累,在这个论坛上提问。有类似的问题和解决方案,但对我来说没有任何效果。 我做了所有提到的配置,但是我的休息服务会出现 swagger ui

***WebInitializer.java***

public class WebInitializer implements WebApplicationInitializer {

public void onStartup(ServletContext servletContext) throws ServletException {  

    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();  
    ctx.register(Config.class);  
    ctx.setServletContext(servletContext);    

    Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));  
    servlet.addMapping("/");  
    servlet.setLoadOnStartup(1);  

}  

}

Config.java

@Configuration 
@ComponentScan("com.javahash.spring")
@EnableWebMvc 
@EnableSwagger2
public class Config extends WebMvcConfigurerAdapter{  

@Bean  
public UrlBasedViewResolver setupViewResolver() {  
    UrlBasedViewResolver resolver = new UrlBasedViewResolver();  
    resolver.setPrefix("/WEB-INF/views/");  
    resolver.setSuffix(".jsp");  
    resolver.setViewClass(JstlView.class);  
    return resolver;  
}

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    registry.addResourceHandler("swagger-ui.html")
    .addResourceLocations("classpath:/META-INF/resources/");

  registry.addResourceHandler("/webjars/**")
    .addResourceLocations("classpath:/META-INF/resources/webjars/");

}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

@Bean
public Docket api() { 
    return new Docket(DocumentationType.SWAGGER_2)  
      .select()                                  
      .apis(RequestHandlerSelectors.any())              
      .paths(PathSelectors.any())                          
      .build();
}

}  

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>RE</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>RE Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
    <spring.version>4.2.8.RELEASE</spring.version>
    <org.slf4j-version>1.7.12</org.slf4j-version>
    <jackson.version>2.8.0</jackson.version>
</properties>
<dependencies>

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>

     <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version>
    </dependency> 
</dependencies>
<build>
    <finalName>RE</finalName>
</build>
</project>

【问题讨论】:

标签: rest maven spring-mvc swagger-ui swagger-2.0


【解决方案1】:

maven 似乎不会自动从 swgger 依赖项加载 webjars。当我添加 webjars 时,它运行良好。

    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>bootstrap</artifactId>
        <version>4.0.0-alpha.3</version>
    </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2019-03-28
    • 2014-02-11
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    相关资源
    最近更新 更多