2015-12-19 45 views
2

我发现了招摇的和招摇的,我喜欢这个方法。我已经设法让它至少在Spring启动时工作。 现在我想将swagger集成到运行在wildfly 9上的Java EE应用程序中。012xx不幸的是,这根本不起作用。 Swagger的记录确实很差。不能得到招摇的工作(野蛮9)

让它工作的必要条件是什么?我从的官方招摇会文件中看到了这些说明。

这是我的build.gradle招摇依赖性:

compile 'io.swagger:swagger-jaxrs:1.5.4' 

这是我的JAX-RS应用程序类:

public class SmamblRestApiApplication extends Application { 

    private Set<Class<?>> classes = new HashSet<>(); 

    public SmamblRestApiApplication() { 
     initClasses(); 
    } 

    private void initSwagger() { 
     BeanConfig beanConfig = new BeanConfig(); 
     beanConfig.setTitle("SmamblV1"); 
     beanConfig.setVersion("1.0"); 
     beanConfig.setSchemes(new String[]{"http"}); 
     beanConfig.setHost("localhost:8080"); 
     beanConfig.setBasePath("/rest/v1"); 
     beanConfig.setResourcePackage("com.myapp.api.v1.rest"); 
     beanConfig.setScan(true); 
    } 

    private void initClasses() { 
     //--- Api Endpoints -------------------------------------- 
     classes.add(RegistrationApi.class); 
     classes.add(MigrationApi.class); 
     classes.add(PhoneNumberApi.class); 
     classes.add(UserResourceApi.class); 
     classes.add(MonitoringApi.class); 
     classes.add(PingApi.class); 
     classes.add(PublicUserResource.class); 


     //--- Filters -------------------------------------------- 
     classes.add(ApiExceptionMapper.class); 
     classes.add(SecurityRolesFilter.class); 

     //--- Swagger -------------------------------------------- 
     classes.add(ApiListingResource.class); 
     classes.add(SwaggerSerializers.class); 
    } 


    @Override 
    public Set<Class<?>> getClasses() { 
     return classes; 
    } 
} 

而且我甚至标注的一个方法有招摇注释:

@Path("private/user") 
@RolesAllowed({UserRole.USER}) 
@NoCache 
@Api 
public class UserResourceApi { 

    @Inject 
    UserFacade userFacade; 

    @RolesAllowed(UserRole.ADMIN) 
    @Produces(MediaType.APPLICATION_JSON) 
    @GET 
    @ApiOperation("test") 
    public List<UserResource> getAllUsers() { 
     return userFacade.findAllUsers(); 
    } 
// ... 

当试图到达swagger.json,如上面的文档中所述,一个空文件是返回(没有404或s.th.,所以我相信一些工作,但不输出任何东西)。 我能做什么?

Btw。任何人都可以解释我com.wordnik和io.swagger包之间的区别吗?

回答

1

我认为你的代码应该没问题(我有一个类似于WildFly的配置)。但是,我没有看到代码中调用的方法initSwagger。也许问题只是该方法没有被调用。

+0

哦,不,我忘了打电话给我自己的方法。这太尴尬了:-D谢谢你的提示! – peez80