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

问题描述 投票:0回答:1

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

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

apache rest cxf swagger swagger-ui
1个回答
3
投票

我做了这些步骤:

  1. 向我的项目添加了所需的依赖项:

        <!-- 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>
        </dependency>
        <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>

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

© www.soinside.com 2019 - 2024. All rights reserved.