外部データベースの項目を検索し、見つかった場合はローカルの項目に保存するサービスを実装しようとしています。 itemSearcher
がアイテムを見つけたとき、それが完璧に動作Apache Camel:Beanエンドポイントがnullを返すときにエラーが発生しました
from("direct:find-and-save")
.to("bean:itemSearcher?method=searchFor(${header.brand}, ${header.model})")
.to("bean:itemConverter")
.to("bean:itemRepository?method=saveItem");
:
は、私は、次のルートを持っています。 itemSearcher
が見つからない場合はnull
を返します。右itemSearcher
戻りnull
とnull
が効果的にアウトオブボディとして設定してしまったことを見た後、私はキャメルのコードをデバッグしている
org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: org.apache.camel.converter.stream.InputStreamCache to the required type
:私は、メッセージのボディがnull
に設定されますが、私は次の例外を得た期待しましたメッセージを受信した後、次の交換のためにメッセージ中になった。しかし、どこかの身体はInputStreamCache
に置き換えられます。
質問:null
の値をメッセージ本文として保存するにはどうすればよいですか?それが不可能な場合は、豆がCamelの依存関係を持たないようにしてください(つまり、引数としてExchange
インスタンスを取ることはできません)。私は私が読んだのドキュメントで何か欠けている場合
私を指すください。私はキャメルvを使用し
を2.18.0を
フローのさまざまなステップでnullを返すルートがあり、bodyの内容を決定するchoice()/ when()を使用するため、CamelがデフォルトでInputStreamCacheを追加することは本当に疑問です。 nullボディを確認するには、itemConverterの後に条件を追加するとよいでしょう。そして、あなたのアイテムコンバータBeanのコードはどのように見えますか? –