No mapping found for swagger-resources/configuration/ui

18,975

I'm using Swagger version 2.3.1 in my pom. I wonder why you have different versions for springfox-swagger2 and springfox-swagger-ui artifacts?

My SwaggerConfig class looks like this. No properties:

@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Autowired
    private TypeResolver typeResolver;

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("FooBar")
                .select()
                //Ignores controllers annotated with @CustomIgnore
                .apis(any()) //Selection by RequestHandler
                        .paths(paths()) // and by paths
                        .build()
                        .apiInfo(apiInfo()
                        );
    }

    private ApiInfo apiInfo() {
        return new ApiInfo("FooBar",
                "A java server based on SpringBoot",
                "1.0.0",
                null,
                "author","","");
    }

    //Here is an example where we select any api that matches one of these paths
    private Predicate<String> paths() {
        return or(
                regex("/foobar/*.*")
                );
    }
}

No configuration or resources for me.

The page comes right up when I hit the URL http://localhost:8080/foobar/swagger-ui.html

Share:
18,975
Ganesh
Author by

Ganesh

Updated on June 28, 2022

Comments

  • Ganesh
    Ganesh almost 2 years

    I am trying to configure swagger ui in non spring boot app. I have done following things. 1. Added Following dependencies

    <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.1.2</version>
        </dependency>
    
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.5.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.5</version>
        </dependency>
    

    2. Added Swagger Config class

    @Configuration
    @EnableSwagger2
    @EnableWebMvc
    //@PropertySource("classpath:/swagger.properties")
    public class SwaggerConfig {
    
    @Bean
    public Docket proposalApis(){
        return new Docket(DocumentationType.SWAGGER_2)
            .groupName("test")
            .select()
                .apis(RequestHandlerSelectors.basePackage("com.test.abc"))
            .paths(PathSelectors.regex("/test1.*"))
            .build()
            .apiInfo(testApiInfo());
    }
    
    private ApiInfo testApiInfo() {
        ApiInfo apiInfo = new ApiInfoBuilder().title("Test APIs").description("GET POST PUT methods are supported ").version("V1").build();
        return apiInfo;
    }
    }
    
    1. Added following mappings :

      <mvc:resources mapping="swagger-ui.html" location="classpath:/META-    INF/resources/"/>
      <mvc:resources mapping="/webjars/**" location="classpath:/META-    INF/resources/webjars/"/>
      

    I am able to access following url's

        /v2/api-docs
        /swagger-resources
    

    But While loading swagger-ui.html UI gets loaded and on server getting following error enter image description here

        No mapping found for /context/swagger-resources/configuration/ui in Dispatcher servlet
    

    Can someone help?