2017-09-04 2 views
0

Ich bin mit Camel 2.18.1 und haben eine http4 Strecke ähnlich wieApache Camel http4 erkennen Endpunkt Protokoll

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

{{}} service über BridgePropertyPlaceholderConfigurer geladen, so dass ich den Endpunkt in verschiedenen Umgebungen festlegen können .

Das Problem, auf das ich gerade gestoßen bin, ist, dass einige meiner Testumgebungen nicht https sind und die Route fehlschlägt, da sie versucht, HTTPS-Kommunikation zu erzwingen.

Ich habe zuvor Jetty-Produzenten verwendet, wo Sie http oder https in {{servicename}} angeben konnten und es automatisch ausgehandelt hat, aber http4 scheint nur den Hostnamen: Port zuzulassen.

Wie kann ich die Lokalisierung zwischen verschiedenen Umgebungen verwalten, so dass es mit einem HTTP- oder HTTPS-Endpunkt funktioniert?

Dank

+1

Warum die gesamten uri Parameter als Platzhalter nicht spritzen? –

+0

Ich werde wahrscheinlich diesen Weg gehen, aber es macht es für das Downstream-Einsatzteam schwieriger. Sie verstehen nicht unbedingt, was http (s) 4 oder die sslContextParameters usw. sind. – Karl

+0

Sie könnten natürlich über Umgebungsvariablen abhängig von einer Bedingung injizieren. Aber ich habe etwas ähnliches gemacht und stattdessen die gesamte uri-Saite eingespritzt. Sie könnten es natürlich auch aus einer Eigenschaftendatei laden, wenn Sie wollten. –

Antwort

0

Sie mehr Platzhalter in der uri verwenden können, so dass Sie nur eine weitere Option haben können, wenn seine http oder https zu konfigurieren.

+0

Hallo Claus, Mein Hauptproblem dabei ist das Laden des SSL-Kontextes. Ich brauche nur das für ssl und wenn der ssl-Kontext vorhanden ist, dann scheint es, es zu https zu zwingen, auch wenn http4 angegeben ist. Ich kann mehrere Platzhalter verwenden, um dies zu erreichen, aber die Eigenschaftendatei wird dadurch komplexer, was das nachgelagerte Bereitstellungsteam erschwert – Karl

Verwandte Themen