Ich habe eine einfache Anwendung, die den Kamel-Wetterdienst verwenden. Ich kann das Ergebnis in meiner Konsole protokollieren, aber ich möchte das Ergebnis in einer Variablen wie einem String speichern, damit ich es auf einem JLabel oder etwas zeigen kann.Apache Kamel erhalten Ergebnis als Zeichenfolge
Mein Weg ist:
from("weather:foo?location=Breda,Netherlands&appid=appid")
.to("bean:outPutBean?method=printLn")
.to("stream:out");
Die outputBean tut nichts anderes als eine einfache Rückkehr zu diesem Zeitpunkt. Ich möchte einen JSON-Parser in dieser Funktion erstellen.
public class OutputBean {
public String printLn(String msg){
return msg;
}
}
Wie kann ich das Ergebnis von der Route in einem variabele speichern, so kann ich die Daten zu einem späteren Zeitpunkt verwenden?
EDIT: Mein Code sieht jetzt aus wie:
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("weather:foo?location="+ txtCity.getText() + "&mode=xml&units=metric&appid=appid")
.setHeader("temperature", XPathBuilder.xpath("//temperature/@value", String.class))
.to("bean:outPutBean?method=printLn")
.to("stream:out");
}
});
[HERE]
public class OutputBean {
public String printLn(@Header("temperature")String temperature){
return "Output: " + temperature;
}
}
Wie kann ich die Temperatur variabele auf dem [HIER] Ort verwenden?
Aber wie kann ich das '' wie JOptionPane value' in zu bekommen. showMessageDialog (null, value); '? – NVO
Rufen Sie einfach den Aufruf an, der den Dialog mit dem Wert als Parameter anzeigt. Oder was meinst du? Du hast den Wert nun einfach dorthin übergeben, wo dein Dialogcode sein wird. –
Schön, ich bekomme den Ortsnamen in meiner Bohne. Aber will ich wirklich brauchen, ist dies: 'camelContext.addRoutes (neu RouteBuilder() { \t @Override \t public void configure() throws Exception { \t \t aus ("Wetter: foo location =" + txtCity. getText() + "& mode = xml & Einheiten = IMPERIAL & appid = appid") \t \t .setHeader ("cityname", XPathBuilder.xpath ("// Stadt/@ name", String.class)) \t \t .to ("Bohne : outPutBean? Methode = printLn ") \t \t.zu ("stream: out"); \t \t} \t}); \t \t \t \t JOptionPane.showMessageDialog (null, cityname); ' Deshalb möchte ich die nach der Route cityname verwenden. – NVO