【发布时间】:2016-02-14 08:43:20
【问题描述】:
我已经使用 JAX-RS 实现了一个 Rest web 服务(功能不相关)。现在我想使用 Swagger 生成它的文档。我已按照以下步骤操作:
1) 在build.gradle 中,我得到了我需要的所有依赖项:
compile 'org.glassfish.jersey.media:jersey-media-moxy:2.13'
2) 我用 Swagger 注释记录我的代码
3) 我在我的 Application 子类中连接了 Swagger:
public class ApplicationConfig extends ResourceConfig {
/**
* Main constructor
* @param addressBook a provided address book
*/
public ApplicationConfig(final AddressBook addressBook) {
register(AddressBookService.class);
register(MOXyJsonProvider.class);
register(new AbstractBinder() {
@Override
protected void configure() {
bind(addressBook).to(AddressBook.class);
}
});
register(io.swagger.jaxrs.listing.ApiListingResource.class);
register(io.swagger.jaxrs.listing.SwaggerSerializers.class);
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.2");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("localhost:8282");
beanConfig.setBasePath("/");
beanConfig.setResourcePackage("rest.addressbook");
beanConfig.setScan(true);
}
}
但是,当我在http://localhost:8282/swagger.json 中为我服务时,我得到了这个输出。
你可以查看我的公开回购here。
【问题讨论】:
-
您正在尝试在没有应用程序上下文的情况下访问您的
swagger.json。尝试向 URL 添加上下文:http://localhost:8282/app/swagger.json -
我用那个 URL 得到 404(使用相同的代码)。
-
也许你可以从这个answer得到一些启发。
标签: rest jax-rs swagger jersey-2.0 grizzly