としてメッセージを受け付けません。 ExpressionEvaluatingRequestHandlerAdvice
の成功チャンネルはAdviceMessage
です。 Javaの7バージョンでは、と罰金働いていた:変圧器は、私はちょうど私達は、Java 7から8に我々のプロジェクトのために使用されてきた、と私は奇妙な問題に直面していたJava DSLの移行を開始しまし入力
.transform(new GenericTransformer<AdviceMessage, Message<?>>() {
@Override
public Message<?> transform(AdviceMessage source) {
return source.getInputMessage();
}
})
しかし、私は、Java 8に変換する場合:
.<AdviceMessage, Message<?>>transform(advice -> advice.getInputMessage())
それは私に例外与える:
org.springframeworkを.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice $ MessageHandlingExpressionEvaluatingAdviceException: ハンドラが失敗しました。入れ子になった例外は です。org.springframework.integration.transformer.MessageTransformationException: メッセージの変換に失敗しました。 ネストされた例外はorg.springframework.messaging.MessageHandlingExceptionです:ネスト 例外java.lang.ClassCastExceptionがある:java.lang.Booleanのはorg.springframework.integration.message.AdviceMessageに キャストをすることはできません
ブールました私が与えた成功表現の結果、このメソッドはペイロードを期待しており、メッセージ全体を保持することはできません。
私がフローの他の部分を変更しようとすると、メッセージのペイロードの代わりにMessage<?>
を期待している一般的な引数を置こうとしたところでエラーが一貫してポップアップを開始しました。
私が間違っていたJava 8の構文のいずれかをやっている場合、私は理解できない、またはJava 7のバージョンが完璧に働いているので、誤差は、完全に他の何かが原因です。
私は一般的なメッセージへのキャストの代わりに、ペイロードがあったウェブ上の任意のJava DSLの例を見つけることができませんでしたので、動作するようになっていますならば私も知りません。
ありがとうございました。