Apache的骆驼http4检测端点协议

问题描述:

我使用骆驼2.18.1和具有类似于http4路线Apache的骆驼http4检测端点协议

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

{{服务名}}经由BridgePropertyPlaceholderConfigurer加载,这样我可以指定在不同环境中的端点。

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

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

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

感谢

+1

为什么不注入整个URI参数占位符? –

+0

我可能会沿着这条路走下去,但这对下游部署团队来说确实更困难。他们不一定明白http(s)4或sslContextParameters等等。 – Karl

+0

根据某些条件,您可以通过环境变量注入。但我做了类似的事情,我们注入了整个uri字符串。如果你愿意,你也可以从属性文件中加载它。 –

您可以在URI中使用更多的占位符,所以你可以有另一种选择,如果它的HTTP或HTTPS进行配置。

+0

嗨克劳斯,我的主要问题是加载的SSL上下文。我只需要ssl,如果ssl上下文存在,那么即使指定了http4,它似乎也会将其强制为https。我可以使用多个占位符来实现这一点,但它开始增加了属性文件的复杂性,这使得下游部署团队更加困难 – Karl