【问题标题】:Apache Camel http4 detect endpoint protocolApache Camel http4 检测端点协议
【发布时间】:2017-09-04 16:00:44
【问题描述】:

我正在使用 Camel 2.18.1 并且有一个类似于

的 http4 路由
<to id="Http4Endpoint" uri="https4://{{servicename}}?sslContextParameters=mySslContext"/>

{{servicename}} 是通过 BridgePropertyPlaceholderConfigurer 加载的,这样我就可以在不同的环境中指定端点。

我刚刚遇到的问题是我的一些测试环境不是 https 并且路由失败,因为它似乎试图强制 https 通信。

我以前使用过码头生产者,您可以在 {{ servicename }} 中指定 http 或 https 并且它会自动协商它,但是 http4 似乎只允许主机名:端口。

如何管理不同环境之间的本地化,以便它可以与 http 或 https 端点一起使用?

谢谢

【问题讨论】:

  • 为什么不将整个 uri 参数作为占位符注入?
  • 我可能会走这条路,但它确实让下游部署团队更加困难。他们不一定了解什么是 http(s)4 或 sslContextParameters 等等。
  • 您当然可以根据某些条件通过环境变量注入。但我做了类似的事情,而是注入了整个 uri 字符串。如果您愿意,当然也可以从属性文件中加载它。

标签: apache-camel camel-http


【解决方案1】:

你可以在 uri 中使用更多的占位符,所以你可以有另一个选项来配置它是 http 还是 https。

【讨论】:

  • 嗨克劳斯,我的主要问题是加载 ssl 上下文。我只需要 ssl 并且如果存在 ssl 上下文,那么即使指定了 http4,它似乎也会强制它使用 https。我可以使用多个占位符来实现这一点,但它确实开始增加属性文件的复杂性,这使得下游部署团队更加困难
猜你喜欢
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多