【问题标题】:Apache CXF without web.xml with Swagger UIApache CXF 没有 web.xml 和 Swagger UI
【发布时间】:2015-06-12 00:38:48
【问题描述】:

我将 CXF 用于没有 web.xml 的 RESTful Web 服务。所有 CXF 和 rest 端点配置都存储在 xml 文件中(由 Spring 管理)。现在我正在尝试在我的服务中实现 Swagger。我已将 SwaggerFeature 添加到我的 jax-rs 配置中:

<jaxrs:features>
       <ref bean="swaggerFeature"/>
</jaxrs:features>

所以现在我的端点 (http://localhost:8080/api-docs) 的纯 JSON 描述工作正常。但我不知道如何将 Swagger UI 连接到我的项目。我见过的所有示例都使用 web.xml。是否可以在没有此配置的情况下连接 Swagger UI?提前致谢。


编辑。 现在这个问题解决了。 CXF 使用嵌入式码头服务器。我刚刚将自定义 org.eclipse.jetty.server.handler.ResourceHandler 添加到 JettyHTTPServerEngine bean 声明并配置它。因此,静态内容暴露在网络上。

【问题讨论】:

    标签: cxf swagger swagger-ui


    【解决方案1】:

    swagger-ui 与 web.xml 无关。如果您将其作为应用程序的一部分托管,您只需修改 index.html 并将其指向您的 /api-docs。如果你把它分开,你仍然需要修改 index.html,但你还需要在你的应用程序中启用 CORS 支持。 swagger-ui 和 swagger-core 都包含这方面的更多信息。

    【讨论】:

    • 好的,我已经修改了 index.html,但我还需要一个接受 http 请求并指向 index.html 的 servlet?我不完全明白如何做到这一点。谢谢。
    • 不需要 servlet。应用程序服务器/Web 容器完全能够公开静态内容。您如何设置它实际上取决于您构建应用程序的方式(手动、maven、gradle 等)。
    • 我使用 Maven 进行构建。
    • 那么你通常会将静态内容直接扔到 webapp 目录下。
    • 那你如何暴露你的 CXF servlet?
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2021-11-12
    • 2016-03-19
    相关资源
    最近更新 更多