为什么我的swagger.json是空的?-RestEasy,Java上的Wildfly

为什么我的swagger.json是空的?-RestEasy,Java上的Wildfly,java,swagger,swagger-2.0,Java,Swagger,Swagger 2.0,我试图让swagger记录我使用RestEasy创建的API 我已经尽可能仔细地阅读了可用的文档 我有: 在pom.xml中添加了swagger 这些都是从“com.jetnuts.rest”包中设置的 然而,问题是,当我访问时: http://localhost:8080/mygiftlist/rest/swagger.json 我得到的只是一个空API: {"swagger":"2.0","info":{"version":"1.0.0","title":""},"host":"local

我试图让swagger记录我使用RestEasy创建的API

我已经尽可能仔细地阅读了可用的文档

我有:

  • 在pom.xml中添加了swagger
  • 这些都是从“com.jetnuts.rest”包中设置的

    然而,问题是,当我访问时:

    http://localhost:8080/mygiftlist/rest/swagger.json
    
    我得到的只是一个空API:

    {"swagger":"2.0","info":{"version":"1.0.0","title":""},"host":"localhost:8080","basePath":"/mygiftlist/rest","schemes":["http"]}
    
    有人知道为什么这不会拾取包中的端点吗?我已经测试了端点,它们都能工作

    例如,我在(com.jetnuts.rest)中有:

    该端点可以正常工作,并按预期添加到数据库中,但它没有显示在swagger json中

    为了完整起见,我的“应用程序”类如下所示:

    @ApplicationPath("/rest")
    public class JaxRsActivator extends Application {
    
        public JaxRsActivator(){
    
        }
    }
    


    终于成功了,但我不知道为什么?

    将servlet移出web.xml并将其添加到“应用程序”后,它就可以工作了。我仍然不知道这是为什么:

        public JaxRsActivator(){
        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.2");
        beanConfig.setSchemes(new String[]{"http"});
        beanConfig.setHost("localhost:8080");
        beanConfig.setBasePath("/rest/");
        beanConfig.setResourcePackage("com.jetnuts.rest");
        beanConfig.setScan(true);
    }
    
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet();
    
        resources.add(io.swagger.jaxrs.listing.ApiListingResource.class);
        resources.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);
    
        return resources;
    }
    
    公共JAXSActivator(){ BeanConfig BeanConfig=新BeanConfig(); beanConfig.设置版本(“1.0.2”); beanConfig.setSchemes(新字符串[]{“http”}); beanConfig.setHost(“localhost:8080”); beanConfig.setBasePath(“/rest/”); beanConfig.setResourcePackage(“com.jetnuts.rest”); beanConfig.设置扫描(真); } @凌驾 public Set>resources=new HashSet(); add(io.swagger.jaxrs.listing.ApiListingResource.class); add(io.swagger.jaxrs.listing.SwaggerSerializers.class); 归还资源; }
    http://localhost:8080/mygiftlist/rest/swagger.json
    
    {"swagger":"2.0","info":{"version":"1.0.0","title":""},"host":"localhost:8080","basePath":"/mygiftlist/rest","schemes":["http"]}
    
    /**
     * Created by steve on 13/12/2015.
     */
    @Path("/giftlists")
    @RequestScoped
    public class GiftListResourceRESTService {
    
        @Inject
        CrudService dao;
    
        /**
         * Create a new list
         * @param giftList The gift list to create
         * @return A created response, or an error if the incorrect format is given.
         */
        @POST
        @Path("/")
        @Consumes(MediaType.APPLICATION_JSON)
        public Response createGift(GiftList giftList) {
            dao.create(giftList);
            try {
                URI resourceURI = new URI("/giftlists/" + giftList.getId());
                return Response.created(resourceURI).build();
            }catch(URISyntaxException e){
                return Response.serverError().build();
            }
        }
    }
    
    @ApplicationPath("/rest")
    public class JaxRsActivator extends Application {
    
        public JaxRsActivator(){
    
        }
    }
    
        public JaxRsActivator(){
        BeanConfig beanConfig = new BeanConfig();
        beanConfig.setVersion("1.0.2");
        beanConfig.setSchemes(new String[]{"http"});
        beanConfig.setHost("localhost:8080");
        beanConfig.setBasePath("/rest/");
        beanConfig.setResourcePackage("com.jetnuts.rest");
        beanConfig.setScan(true);
    }
    
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet();
    
        resources.add(io.swagger.jaxrs.listing.ApiListingResource.class);
        resources.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);
    
        return resources;
    }