【问题标题】:can't get swagger working (wildfly 9)不能大摇大摆地工作(wildfly 9)
【发布时间】:2015-12-19 20:16:44
【问题描述】:

我发现了 swagger 和 swagger-ui,我喜欢这种方法。我已经设法让它至少在 Spring Boot 上工作。 现在我想将 swagger 集成到在 wildfly 9 上运行的 Java EE 应用程序中。 不幸的是,这根本不起作用。 Swagger 的文档记录真的很差。

什么是让它工作的必要条件?我按照https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-JAX-RS-Project-Setup-1.5.X 的官方 swagger 文档中的说明进行操作。

这是我在 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.,所以我相信某些东西正在工作,但没有输出任何东西)。 我能做什么?

顺便说一句。谁能解释一下 com.wordnik 和 io.swagger 包之间的区别?

【问题讨论】:

    标签: java rest jakarta-ee wildfly swagger


    【解决方案1】:

    我认为您的代码应该没问题(我有类似的配置与 WildFly 一起使用)。但是,我没有看到您的代码中调用了 initSwagger 方法。也许问题只是没有调用该方法。

    【讨论】:

    • 哦,不,我忘了调用我自己的方法。这太尴尬了 :-D 谢谢你的提示!
    猜你喜欢
    • 2020-07-12
    • 2019-05-11
    • 1970-01-01
    • 2022-09-28
    • 2023-01-18
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多