2017-09-04 11 views
0

を検出してと同様http4経路を有するApacheのラクダhttp4 Iはキャメル2.18.1を使用しているエンドポイントプロトコル

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

{{サービス名は}}私は異なる環境でエンドポイントを指定できるようにBridgePropertyPlaceholderConfigurerを介してロードされます。

私が直面した問題は、テスト環境の一部がhttpsではなく、ルートがhttps通信を強制しようとしているように見えるため、ルートが失敗することです。

私は以前、{{servicename}}でhttpやhttpsを指定できる箇所でjettyプロデューサを使用していましたが、自動ネゴシエートしましたが、http4はhostname:portのみを許可しているようです。

異なる環境間でローカライズを管理して、httpまたはhttpsエンドポイントのどちらでも動作するようにするにはどうすればよいですか?

おかげ

+1

なぜプレースホルダとして全体URIパラメータを注入していませんか? –

+0

私はおそらくその道を辿りますが、下流の展開チームにとっては難しくなります。彼らは必ずしもhttp(s)4やsslContextParametersなどが何であるかを理解していません。 – Karl

+0

いくつかの条件によっては、環境変数を介してコースを挿入することができます。しかし、私は何か似たようなことをしました。あなたが望むのであれば、プロパティファイルからロードすることもできます。 –

答えて

0

あなただけのそのHTTPまたはHTTPSあれば設定するには、別のオプションを持つことができますので、あなたは、URIでより多くのプレースホルダを使用することができます。

+0

こんにちはクラウス、私の主な問題は、SSLのコンテキストの読み込みです。私はSSLの必要があります.SSLコンテキストが存在する場合、http4が指定されていてもhttpsに強制されているようです。これを達成するために複数のプレースホルダを使用できますが、プロパティファイルに複雑さが加わり始めます。これにより、下流のデプロイメントチームにとってより困難になります – Karl

関連する問題