2016-07-18 8 views
3
rest("/getOptChoice"). 
     get("/v1") 
     .consumes("application/json") 
     .to("direct:hello") 
     .produces("application/json"); 

from("direct:hello") 
     .split(header("emails")) 
     .to("seda:consumeGuestChoice") 
     .aggregate(constant(true),new OptAggregator()) 
     .completionSize(2) 
     .marshal(jaxb) 
     .convertBodyTo(String.class); 

交換体を印刷した場合、ペイロードが表示されます。しかし、残りのサービスからのHTTP応答は常に空です。交換体にペイロードがありますが、CamelのHTTPレスポンス本体は空です

誰かが以前にこの問題に直面しましたか?もしそうなら、回避策はありますか?

+0

私は現在、スプリッターの後でこの問題に直面しています。何か見つけましたか? –

答えて

2

あなたのルート内のストリームキャッシュを有効にする必要があります:http://camel.apache.org/stream-caching.html

それは体がこれらのストリームでバックアップされた部品のために複数回を読み取ることができます。

from("direct:hello") 
    .streamCaching() 
    .split(header("emails")) 
    .to("seda:consumeGuestChoice") 
    .aggregate(constant(true),new OptAggregator()) 
    .completionSize(2) 
    .marshal(jaxb) 
    .convertBodyTo(String.class); 
0

あなたが書く場合:

from("direct:hello") 
    .split(header("emails"), new OptAggregator()) 
     .to("seda:consumeGuestChoice") 
     .end() 
    .marshal(jaxb) 
    .convertBodyTo(String.class); 

それが動作する可能性があります。それは...ですか ?

関連する問題