无法从Swagger获得json(swagger-jaxrs)

时间:2016-01-15 13:20:28

标签: jax-rs swagger swagger-ui swagger-2.0

实际上我正在尝试为我的REST服务生成swagger.json。 我成功地使用jersy,但现在我们使用不在我们的服务中使用jersy,我们只使用Jax-rs,所以现在我无法生成它并得到404错误代码。

这是我的pom依赖

<dependencies>

    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.9.5</version>
    </dependency>
    <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.9.10</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>

</dependencies>

这是我的应用配置应用

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

import com.skios.endpoint.EmployeeEndpoint;
import com.skios.endpoint.ShopsEndpoint;

import io.swagger.jaxrs.config.BeanConfig;
import io.swagger.jaxrs.listing.ApiListingResource;
import io.swagger.jaxrs.listing.SwaggerSerializers;

@ApplicationPath("api")
public class AppConfiguration extends Application {

public AppConfiguration() {
    BeanConfig beanConfig = new BeanConfig();
    beanConfig.setVersion("1.0.2");
    beanConfig.setSchemes(new String[] { "http" });
    beanConfig.setHost("localhost:7070");
    beanConfig.setBasePath("app");
    beanConfig.setResourcePackage("com.skios.endpoint");
    beanConfig.setScan(true);
}

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Set<Class<?>> getClasses() {

    Set<Class<?>> resources = new HashSet();
    resources.add(ShopsEndpoint.class);
    resources.add(EmployeeEndpoint.class);
    // ...
    resources.add(ApiListingResource.class);
    resources.add(SwaggerSerializers.class);
    return resources;
}
}

这些是我的终点

@Api(value = "/employees", description = "Endpoint for employee listing")
@Path("/employees")
public class EmployeeEndpoint {}

@Path("/shops")
@Api(value="/shops", description="Shops")
public class ShopsEndpoint {}

以及当我尝试输入swagger.json文件的路径时

http://localhost:7070/MavenSwaggerTest/api/swagger.json

i got 404 error code.

那么问题是什么?谁能帮我? 感谢

1 个答案:

答案 0 :(得分:0)

您尚未正确配置ApplicationPathBasePath

像这样配置它。

@ApplicationPath("/api")

beanConfig.setBasePath("/api");

现在http://localhost:7070/MavenSwaggerTest/api/swagger.json可以使用,除非有任何其他问题。