Swagger api列表为空

Swagger api列表为空,api,rest,jersey,jax-rs,swagger,Api,Rest,Jersey,Jax Rs,Swagger,最近我用我的一个项目配置了swagger。它在tomcat上使用jersey2和JAX-WS实现restful API。我使用了以下手册来配置 ${basepath}/swagger.json响应,包含以下内容 {“swagger”:“2.0”,“info”:{“version”:“1.0.0”,“title”:“}”,host:“localhost:8080”,“basePath”:“/myapi”,“schemes”:[“http”]} 不幸的是,它不包含我的资源包下的任何api。 我试着

最近我用我的一个项目配置了swagger。它在tomcat上使用jersey2和JAX-WS实现restful API。我使用了以下手册来配置

${basepath}/swagger.json响应,包含以下内容

{“swagger”:“2.0”,“info”:{“version”:“1.0.0”,“title”:“}”,host:“localhost:8080”,“basePath”:“/myapi”,“schemes”:[“http”]}

不幸的是,它不包含我的资源包下的任何api。 我试着回答以下问题

但这也没用。 以上答案使用com.wordnik.swagger.*软件包 但是使用手册我得到了io.swagger.*包,它没有 JaxrsApiReader类

我的假设是swagger无法从资源包扫描我的api列表。 但无法找出我遗漏的配置或代码段


有什么帮助吗?…

我也有同样的问题,我使用了一种不同的方法,只在我的应用程序类中添加信息。如果您有一个,这可能会帮助您:

public class MyApi extends Application {

    public MyApi() {
        super();
        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setTitle("MyApi");
        beanConfig.setVersion("0.0.1");
        beanConfig.setSchemes(new String[]{"http", "https"});
        beanConfig.setHost("localhost:8080");
        beanConfig.setBasePath("/mypath");

        //putting only the path to my api unblocked me, I removed "io.swagger.resources"
        beanConfig.setResourcePackage("system.organization.api"); 
        beanConfig.setScan(true);
        beanConfig.setPrettyPrint(true);
    }

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> s = new HashSet<>();

        s.add(MyApis);

        //for swagger
        s.add(ApiListingResource.class);
        s.add(SwaggerSerializers.class);

        return s;
    }
}
公共类MyApi扩展应用程序{
公共MyApi(){
超级();
BeanConfig BeanConfig=新BeanConfig();
beanConfig.setTitle(“MyApi”);
beanConfig.设置版本(“0.0.1”);
设置模式(新字符串[]{“http”,“https”});
beanConfig.setHost(“localhost:8080”);
beanConfig.setBasePath(“/mypath”);
//我只打开了api的路径,就删除了“io.swagger.resources”
beanConfig.setResourcePackage(“system.organization.api”);
beanConfig.设置扫描(真);
beanConfig.setPrettyPrint(真);
}
@凌驾
public Set>s=new HashSet();
s、 添加(MyAPI);
//招摇过市
s、 添加(ApiListingResource.class);
s、 添加(SwaggerSerializers.class);
返回s;
}
}
然后,带有@API注释的类的链接出现在swagger.json中


主要是使用您使用的同一手册完成的:

看起来您忘了用
@Api

标记其余端点,我只需要在服务上放置@Api。我不需要重写GetClass()。在web.xml中,我添加了:resteasy.scan true从资源包中删除“io.swagger.resources”对我来说很有用。关于这个的swagger文档在哪里。我找不到。批注文档在这里: