2016-09-21 50 views
0

我使用Swagger 2進行非彈簧引導,我也可以在Tomcat上部署我的應用併成功運行它。但是控制器沒有出現在swagger-ui.html中,只有顯示綠色招牌的空白頁面。我已經在這個問題上花了兩天的時間。你會給我一些建議嗎?控制器不會出現在swagger-ui.html中

@Controller指類波紋管:

@Api 
@Controller 
@RequestMapping("/user") 
public class UserController { 

protected Logger logger = LoggerFactory.getLogger(UserController.class); 

@Autowired 
private UserService userService; 

@RequestMapping("/showInfos") 
public @ResponseBody Object showUserInfos(){ 
    logger.info("-----------------------showUserInfos-----------------------"); 
    List<UserInfo> userInfos = userService.getUsers(); 
    return userInfos; 
} 

我的彈簧mvc.xml配置如下:

<mvc:annotation-driven/> 
<[email protected] inject bean --> 
<context:component-scan base-package="com.roy.demo , version" /> 

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

<!-- Include a swagger configuration --> 
<bean name="/applicationSwaggerConfig" class="com.roy.demo.config.ApplicationSwaggerConfig" /> 

也是我昂首闊步配置類如下:

@EnableSwagger2 
public class ApplicationSwaggerConfig { 

private static final Logger LOGGER = Logger.getLogger(ApplicationSwaggerConfig.class); 

@Bean 
public Docket api() { 
    LOGGER.info("################################ into Docket api() #####################################"); 
    return new Docket(DocumentationType.SWAGGER_2) 
      .select() 
      .apis(RequestHandlerSelectors.basePackage("com.roy.demo.controller")) 
      .paths(PathSelectors.any()) 
      .build(); 
} 

}

我看到maven pom.xml swagger2依賴如下:

 <!-- Swagger 2.0 --> 
    <dependency> 
     <groupId>io.swagger</groupId> 
     <artifactId>swagger-core</artifactId> 
     <version>1.5.3</version> 
    </dependency> 
    <dependency> 
     <groupId>io.springfox</groupId> 
     <artifactId>springfox-swagger2</artifactId> 
     <version>2.5.0</version> 
    </dependency> 

    <dependency> 
     <groupId>io.springfox</groupId> 
     <artifactId>springfox-swagger-ui</artifactId> 
     <version>2.5.0</version> 
    </dependency> 

貝婁是結果當我輸入端點url:http://localhost:8080/Spring_SpringMVC_Mybatis/swagger-ui.html

enter image description here

+0

是什麼意思@Controller不能招搖的用戶界面顯示。 – Vaibs

+0

分享你的配置類招搖 – Vaibs

+0

請按照這個答案相同: - http://stackoverflow.com/a/42922167/2357869 –

回答

1

我也是新揚鞭,但下面我使用的代碼對於我的大搖大擺的配置,它適合我。我在課堂上完成了配置。

配置類。

@Configuration 
@EnableWebMvc 
@EnableSwagger2 
@ComponentScan(basePackages = "com.*") 
@PropertySource(value = { "classpath:log4j.properties" }) 
public class SpringConfig extends WebMvcConfigurerAdapter { 
    @Bean 
      public Docket api() { 
       return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()).directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class) 
         .useDefaultResponseMessages(false) 
        .select()   
        .apis(RequestHandlerSelectors.any())    
        .paths(PathSelectors.any())       
        .build();           
      } 
      @Override 
      public void addResourceHandlers(ResourceHandlerRegistry registry) { 
       registry.addResourceHandler("swagger-ui.html") 
        .addResourceLocations("classpath:/META-INF/resources/"); 
       registry.addResourceHandler("/webjars/**") 
        .addResourceLocations("classpath:/META-INF/resources/webjars/"); 
      } 
    @SuppressWarnings("deprecation") 
    private ApiInfo apiInfo() { 
     ApiInfo apiInfo = new ApiInfo(
      "API", 
      "API for xxxx", 
      "API TOS", 
      "Terms of service", 
      "xxx", 
      "License of API", 
      ""); 
     return apiInfo; 
    } 

} 

Maven的相關性:

<dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger2</artifactId> 
      <version>2.4.0</version> 
     </dependency> 
<dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>2.4.0</version> 
     </dependency> 

控制器類

@RestController 
@Api(value="users", description="Endpoint for user management") 
public class Controller { 
} 

endpointurl:

https://localhost:8080/AppName/swagger-ui.html 
+0

http://i.stack.imgur.com/l3wag.png 我仍然解決不了這個問題,看到我上面切的圖片 –

+0

你有沒有更改過配置? – Vaibs

+0

是的,我做了你所做的所有對招搖的配置類,但仍然無法工作 –