2017-04-05 7 views
0

私はラクダ天気のサービスを使用する単純なアプリケーションを持っています。私はコンソールに結果を記録することができますが、Stringのような変数に結果を保存したいので、JLabelなどでその結果を表示できます。Apache camelの結果が文字列として返される

私のルートは以下のとおりです。

from("weather:foo?location=Breda,Netherlands&appid=appid") 
    .to("bean:outPutBean?method=printLn") 
    .to("stream:out"); 

outputBeanは、この時点で、単純なリターンよりも何もしません。私はその関数でJSONパーサを作成したいと思います。

public class OutputBean { 
    public String printLn(String msg){ 
     return msg; 
    } 
} 

どのように私はvariabeleのルートからの結果を保存することができますので、後でデータを使用できますか?

EDITは: 私のコードは今のようになります。

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; 
    } 
} 

は、どのように私は[ここ]の場所に温度variabeleを使用できますか?

答えて

0

私はこのようにします。

  1. メッセージからヘッダーに必要なものを保存します。
from("weather:foo?location=Breda,Netherlands&appid=appid") 
.setHeader("myHeader", "myHeaderValue");  
.to("bean:outPutBean?method=printLn") 
.to("stream:out"); 

あなたは、入力体のいずれかからか、どこかから値を取得することができます。

  1. あなたの豆の中で私はそのヘッダーを受け取り、それを保存してから何でもしていきます。
public class OutputBean { 
    public String printLn(@Header("myHeader")String header){ 
     String value = header; 
     return value; 
    } 
+0

に保管プロセッサでは、ルート

  • にインラインプロセッサを追加します。しかし、どのように私は ''のJOptionPaneのようで[値]を得ることができます。 showMessageDialog(null、value); '? – NVO

  • +0

    値をパラメータとしてダイアログを表示する呼び出しを呼び出すだけです。あなたはどういう意味ですか?あなたは今すぐ値をあなたのダイアログコードがどこに渡すことがあります。 –

    +0

    ニース、私は私の豆のplacenameを取得します。しかし、私が本当に必要欲しいのはこれです:+ txtCity: 'camelContext.addRoutes(新RouteBuilder(){ \t @Override \t公共ボイドのconfigure()( "?FOO場所=天気" から例外{ \t \tをスローします。 getText()+ "&モード= XML&単位= IMPERIAL&APPID = APPID") \t \t .setHeader( "cityName"、XPathBuilder.xpath( "//市/名@"、String.class)) \t \t .TO(「豆:outPutBean?method = printLn ") \t \t。to( "stream:out"); \t \t} \t})。 \t \t \t \t JOptionPane.showMessageDialog(ヌル、cityName); ' だから私はルートの後cityNameを使用します。 – NVO

    0
    • は、ルートを設定するクラスにメンバ変数を追加します。
    • ヘッダのうち、あなたがしたい文字列を取得し、変数
    関連する問題