2015-12-20 1 views
4

J'ai un contrôleur Spring Rest et son application NOT spring boot. C'est juste un projet API REST. Je veux intégrer swagger2 dans mon projet. J'ai essayé tous les exemples en Net et en démo mais sans chance. Quand j'essaye d'exécuter http://localhost:8085/context/swagger-ui.html j'obtiens l'erreur 404. S'il vous plaît trouver ma confugration ci-dessous et laissez-moi savoir s'il y a des divergences. Toute aide est grandement appréciée.L'API REST de Swagger2 + Spring ne fonctionne pas

pots - sous/WEB-INF/lib

Google-collections-1.0.jar springfox-core-2.2.2.jar springfox-schema-2.2.2.jar springfox-spi -2.2.2.jar springfox-printemps-web-2.2.2.jar springfox-statiquedocs-2.2.2.jar springfox-swagger-commun-2.2.2.jar springfox-swagger-ui-2.2.2 .jar springfox-swagger2-2.2.2.jar

Ma fanfaronnades classe config -

@EnableSwagger2 
public class SwaggerConfiguration { 

} 

Ma classe springconfig

@EnableWebMvc 
@ComponentScan(basePackageClasses = controller.class) 
@Import(SwaggerConfiguration.class) 
public class SpringConfiguration extends WebMvcConfigurerAdapter { 

@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/"); 
} 
} 

Ma demande de classe initialiseur ci-dessous comme par springfox-java démo. J'ai essayé avec et sans la classe ci-dessous et il ne fonctionne pas de toute façon.

Application Initializer class 

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 
@Override 
protected Class<?>[] getRootConfigClasses() { 
return null; 
} 

@Override 
protected Class<?>[] getServletConfigClasses() { 
    return new Class[]{controller.class}; 
} 

@Override 
protected String[] getServletMappings() { 
    return new String[]{"/*"}; 
} 
} 

Je peux accéder à mes URL de repos mais pas swagger-ui.html dans le même contexte.

S'il vous plaît laissez-moi savoir ce que je suis ici?

+0

Pouvez-vous voir quelque chose de similaire dans vos journaux de démarrage: mappée "{[/ fanfaronnades-ressources/configuration/ui]}" jusqu'au org.springframework.http .ResponseEntity

Répondre

0

-je ajouter la sélection manuelle des contrôleurs:

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 
    @Bean 
    public Docket productApi() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .select() 
       .apis(RequestHandlerSelectors.basePackage("my.package.to.api")) 
       .paths(regex("/product.*")) //optionnal 
       .build(); 

    } 
}