【问题标题】:Cross Domain Issue : Camel Swagger with Jetty in a Karaf Environment跨域问题:在 Karaf 环境中使用 Jetty 的 Camel Swagger
【发布时间】:2017-01-19 14:45:09
【问题描述】:

我在一个 OSGi 环境项目中工作。我发现骆驼提供了招摇的集成。所以我用过。在使用 swagger UI 发起请求之前,它一直运行良好。

我的意思是当我把我用 camel-swagger-java 定义的 uri 放入 swagger ui 时,它可以工作。 Swagger 发现了我的 api !

但是当我想使用 swagger ui 发起请求时,我遇到了跨域请求的问题。

我找到了几个解决方案: - 第一个骆驼休息

restConfiguration().component("jetty").bindingMode(RestBindingMode.json)
        .dataFormatProperty("prettyPrint", "true")
        .contextPath("/").port(8080).apiContextPath("/api-doc/login").apiProperty("api.title", "Login API").apiProperty("api.version", "1.0.0-SNAPSHOT")
        .apiProperty("cors", "true").apiProperty("apiContextIdListing", "true");

我已设置为真正的 cors 属性。但这并没有解决我的问题。然后经过一番搜索,我发现它可能是禁止跨域请求的码头。但是到了这一点,我还没有找到如何在 OSGi 环境(Karaf / Fellix)中配置 Jetty 来接受这种请求。

感谢您的帮助

【问题讨论】:

  • 你需要开启CORS
  • 在码头上?如何 ?我认为使用 .apiProperty("cors", "true") 对骆驼有好处。但是在 OSGi 上下文中使用 Jetty,我没有找到如何去做。那是我的问题:)

标签: java apache-camel jetty swagger-ui apache-karaf


【解决方案1】:

我找到了解决方案。使用 Camel,我必须为每个服务创建 OPTIONS Rest 接口。它很脏(http://camel.465427.n5.nabble.com/Workaround-with-REST-DSL-to-avoid-HTTP-method-not-allowed-405-td5771508.html)。所以我使用了这个解决方案:github.com/swagger-api/swagger-ui/issues/1888

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2012-06-01
    • 2018-08-01
    • 2013-08-03
    • 2020-07-07
    • 2011-01-01
    相关资源
    最近更新 更多