如何使用 CXFNonSpringJaxrsServlet 将 swagger 工具与 apache CXF REST Web 服务集成?

How to integrate swagger tool with apache CXF REST web service using CXFNonSpringJaxrsServlet?

您能否提供在没有 spring 框架支持(使用 org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet)的情况下将 Swagger 集成到 Apache CXF JAX-RS 应用程序中的明确步骤。

我浏览了 swagger 网站和博客,但没有找到任何配置 swagger 的明确步骤。

我做了这些步骤:

1) 为我的项目添加了 required 依赖:

    <!-- SWAGGER -->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>swagger-ui</artifactId>
        <version>2.1.4</version>
        <scope>provided</scope>
    </dependecy>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-simple.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j-simple.version}</version>
    </dependency>

2) 更新了此处提到的 web.xml:https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61318164

3) 添加 swagger-ui 2.1.4 作为项目资源(我编辑 index.html 指向右边 url );

4) 为我的服务 cxf 添加了 @Api 注释;

希望对您有所帮助

更新:

CXF 依赖项:

    <!-- CXF -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-service-description</artifactId>
        <version>${cxf.version}</version>
    </dependency>

with cxf.version = 3.1.5(CXF 3.1.X 仅适用于 jdk 1.7 或更新版本)