ich zwei kleine Frühlings-Boot-Anwendungen unter BerücksichtigungVerarbeitung Antwort von externen Web-Service mit Apache Camel
- applcation 1: Eine kleine Web-Service auf http://localhost:8081 ausgeführt wird, reagiert eine einfache Feder-Controller Implementierung Anforderungen an GET auf/Kamel. Der Service gibt einfach "Hallo Welt" zurück, wenn er http://localhost:8081/camel besucht.
- Anwendung 2: Eine kleine Anwendung, die eine GET-Anforderung an Anwendung 1 ausführen und die Antwort an die Konsole (in diesem Fall "Hallo Welt") ausdrucken sollte.
Verwendung von Federn RestTemplate
, kann ich einfach diese GET-Anfrage in Anwendung implementieren 2:
RestTemplate template = new RestTemplate();
String response = template.getForBody("http://localhost:8081/camel", String.class);
System.out.println(response);
Mein Ziel jetzt RestTemplate
Apache Camel verwenden anstelle von Spring ist. Ich habe versucht, die folgenden RouteBuilder definieren:
public class MyRoutes extends RouteBuilder {
@Override
public void configure() throws Exception() {
from("jetty:http://localhost:8081/camel").to("direct:processRest");
from("direct:processRest").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println(exchange.getIn().getBody());
}
});
}
}
Wenn ich die Anwendung jedoch laufen, erhalte ich folgende Fehlermeldung:
org.apache.camel.spring.boot.CamelSpringBootInitializationException: java.net.BindException: Address already in use: bind
Entweder Frühlings-Boot oder Apache Camel automatisch einen Jetty-Server zu starten versucht, an Port 8081, aber der andere Webservice (Anwendung 1) läuft bereits auf diesem Port.
Weiß jemand, wie man dieses Problem vermeidet?
Diese ich schon verstanden sein :) Aber ich verstehe nicht, wie ich Anlegestelle laufen lassen kann an Port 8282, aber verwenden Sie Port 8281 in der Routenspezifikation. Was auch immer ich versuche, Jetty startet immer an dem Port, der in der Route verwendet wird. –
Nun, da Sie von() in der Routen-Deklaration Ihrer Anwendung 2 Gebrauch machen, erstellen Sie einen eingebetteten Jetty und hören Anfragen ab/camel path –
Oh, ** jetzt ** Ich verstehe - Entschuldigung, ich habe deine Frage falsch verstanden. Ich werde meine Antwort sofort aktualisieren. –