【发布时间】: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 字符串。如果您愿意,当然也可以从属性文件中加载它。