2016-09-21 3 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

Я также новое Swagger, но ниже код я использовал для моя конфигурация swagger, и она хорошо работает для меня. Я сделал конфигурацию в классе.

Конфигурационный класс.

@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

Да, я сделал все, что вы сделали, с классом конфигурации swagger, но все равно не может работать –