我输入了以下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个URL,产生250个键和1186个值

但是然后我在http://localhost:8080/api上得到404

你知道我在做什么错吗?

最佳答案

它对我也不起作用。所以我用下面的方法代替了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

10-02 03:34