Нулевая корреляция не допускается. Может быть, CorrelationStrategy терпит неудачу?
Я использую пружинную интеграцию, и я использую стратегию корреляции по умолчанию, то есть я не пишу код для стратегии корреляции явно, все работает нормально до сплиттера, после сплиттера есть активатор службы, который выполняет некоторую обработку и затем отправляет сообщение в канал, из которого агрегатор должен выбрать его, но агрегатор не выбирает его, поэтому я поместил перехватчик, чтобы выяснить, что происходит, и обнаружил, что перед тем, как сообщение будет помещено в канал агрегатора, связанные с агрегацией заголовки, такие как корреляция Идентификатор и т. д. присутствуют, но как только его помещают в канал, заголовки теряются. Теперь я не уверен, почему агрегатор или канал до этого теряют заголовки. Любая помощь будет принята с благодарностью.
ОБНОВЛЕНИЕ:- Я использую Spliier, затем активатор, затем другой сплиттер, затем активатор, затем агрегатор, а затем еще один агрегатор... Код ниже для внутренней комбинации разделителя и агрегатора
1 ответ
Спасибо за вашу помощь. Я смог наконец решить это. Проблема заключалась в том, что я передавал org.json.JSONOBject от и до компонентов интеграции Spring. Теперь JSONObject не сериализован, и я предполагаю, что компоненты сплиттера и агрегатора работают только с сериализованными объектами. Простейшим способом было преобразовать JSONObjects в строку, вызвав для них метод toString(). Было бы намного проще, если бы трассировка стека сказала мне, что я использую несериализованный объект вместо того, чтобы сказать мне: "Нулевая корреляция не разрешена". Может быть, CorrelationStrategy терпит неудачу?
Я удалил свой код, который я положил здесь, чтобы быть в безопасности.