2017-08-08 145 views
0

當我沒有@EnableWebMvc我可以訪問招搖頁是空的,

http://localhost:8080/swagger-ui.html

但看起來像這樣:

enter image description here ,並在我的網絡我有這個要求404 enter image description here

當我啓用我無法訪問該網址(看起來像不存在)

在我啓動日誌中我只看到

Mapped "{[/custom],methods=[GET]}" onto java.lang.String com.example.demo.web.rest.HelloController.hi() 
2017-08-08 15:27:29.951 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/u],methods=[GET]}" onto java.lang.String com.example.demo.web.rest.HelloController.home() 
2017-08-08 15:27:29.952 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/v2/api-docs],methods=[GET],produces=[application/json || application/hal+json]}" onto public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest) 
2017-08-08 15:27:29.955 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources/configuration/ui]}" onto org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.UiConfiguration> springfox.documentation.swagger.web.ApiResourceController.uiConfiguration() 
2017-08-08 15:27:29.956 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources/configuration/security]}" onto org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.SecurityConfiguration> springfox.documentation.swagger.web.ApiResourceController.securityConfiguration() 
2017-08-08 15:27:29.956 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources]}" onto org.springframework.http.ResponseEntity<java.util.List<springfox.documentation.swagger.web.SwaggerResource>> springfox.documentation.swagger.web.ApiResourceController.swaggerResources() 
2017-08-08 15:27:29.959 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 
2017-08-08 15:27:29.959 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 
2017-08-08 15:27:30.137 INFO 94164 --- [   main] s.w.s.m.m.a.RequestMappingHandlerAdapter 

我的配置文件是這樣的:

@Configuration 
//@EnableWebMvc 
@EnableSwagger2 
public class WebConfig { 
    @Bean 
    public Docket productApi() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .select() 
       .apis(RequestHandlerSelectors.basePackage("com.example.demo.web.rest")) 
       .paths(PathSelectors.any()) 
       .build() 
       .apiInfo(metaData()); 
    } 

    private ApiInfo metaData() { 
     ApiInfo apiInfo = new ApiInfo(
       "Spring Boot REST API", 
       "Spring Boot REST API for Online Store", 
       "1.0", 
       "Terms of service", 
       "someone", 
       "Apache License Version 2.0", 
       "https://www.apache.org/licenses/LICENSE-2.0"); 
     return apiInfo; 
    } 

} 

和我的主要是:

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 

public class DemoApplication { 


    public static void main(String[] args) { 
     SpringApplication.run(DemoApplication.class, args); 
    } 
} 

,並在我的pom.xml

<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger2</artifactId> 
      <version>2.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>2.4.0</version> 
     </dependency> 

任何想法是什麼你錯了嗎?

回答

0

有你的資源處理程序?

@Override 
    public void addResourceHandlers(final ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/swagger/**").addResourceLocations("classpath:/swagger/"); 
    } 

我有這個在擴展WebMvcConfigurerAdapter

+0

是的,我沒有,但隨後出現像「未找到」我不知道會是什麼頁面該案例的URL – jpganz18

+0

什麼URL可以爲您提供您在原始問題中提到的404。 –

0

如果您的應用程序定義一個定製的contextPath(server.contextPath在application.properties)一類,那麼它必須包含在URL中。 http://localhost:8080/contextPath/swagger-ui.html

您也可以嘗試將RequestHandlerSelectors.basePackage("com.example.demo.web.rest")更改爲RequestHandlerSelectors.any()並查看會發生什麼情況。

1

如果您WebConfig是在不同的包比DemoApplication類,你可能希望將包添加到basePackages@ComponentScan