Swagger jaxrs不工作

时间:2015-09-23 14:02:10

标签: java swagger

我已经制作了以下pom.xml条目:

<dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.5.0</version>
    </dependency>

并创建了一个servlet:

public class SwaggerJaxrsConfig extends HttpServlet {
    @Override
    public void init(ServletConfig servletConfig) {
        try {
            super.init(servletConfig);
            BeanConfig beanConfig = new BeanConfig();
            beanConfig.setVersion("1.0.2");
            beanConfig.setSchemes(new String[]{"http"});
            beanConfig.setHost("localhost:8080");
            beanConfig.setBasePath("/api");
            beanConfig.setResourcePackage("com.mypackage.resource");
            beanConfig.setScan(true);
        } catch (ServletException e) {
            System.out.println(e.getMessage());
        }
    }
}

并在web.xml中添加了这个:(我可以通过添加它来跳过web.xml但是由于某种原因我仍然使用了sevlet 2.5

@WebServlet(name = "SwaggerJaxrsConfig", loadOnStartup = 1)
<servlet>
        <servlet-name>SwaggerJaxrsConfig</servlet-name>
        <servlet-class>com.SwaggerJaxrsConfig</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

我可以在日志中看到以下行:[org.reflections.Reflections]反射需要332毫秒来扫描2个网址,产生250个密钥和1186个值

但是我在http://localhost:8080/api

上获得了404

你知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

它对我也不起作用。所以我使用了以下代替httpservlet然后它开始工作

 <servlet>
    <servlet-name>Jersey2Config</servlet-name>
    <servlet-class>io.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
    <init-param>
        <param-name>api.version</param-name>
        <param-value>1.0.0</param-value>
    </init-param>
    <init-param>
        <param-name>swagger.api.basepath</param-name>
        <param-value>http://localhost:8080/api</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

有关我如何实施的更多详情,请参阅以下链接 https://github.com/sanketsw/jax_rs_REST_Example