2016-09-01 4 views
2

в моей программе есть запрос к API, а затем сообщение в входящем канале сохраняется в файле. Моя проблема в том, что я получаю некоторую ошибку в моей полезной нагрузке для некоторого запроса. Я хочу сохранить такой файл ошибки в другом каталоге. Как добавить выражение фильтра, чтобы такая полезная нагрузка хранилась в другом каталоге. Мой код:Фильтр интеграции Spring

<int:chain input-channel="abcconnect"> 
     <int:filter id="errorout" expression="payload.containsKey('errorCode')"/> 
     <file:outbound-channel-adapter 
      id="apiResponseWriter" 
      directory="${error.path}" 
      filename-generator-expression="'abc-' + T(java.lang.System).currentTimeMillis() + '.json'" 
      delete-source-files="false" /> 
    </int:chain> 

Ошибка в файле полезной нагрузки: {"TwitterApi":{"errorCode":400,"errorMsg":"beginTime or endTime is later than now(1472041145)","success":false,"cost":11,"params":

ответ

1

filter позволяет сообщение пройти и идти вперед в потоке, если предикат возвращает true. В вашем случае похоже, что сообщения с errorCode должны идти вниз по потоку.

Итак, я думаю, вам нужно отменить выражение, а также добавить discard-channel, чтобы сообщение false было отправлено в другой поток для анализа, обработки или хранения в другой файл, например, ваше требование.

+0

спасибо. Помогло добавить канал сброса. – survivor

+0

Отлично! Похоже, вы можете принять ответ сейчас: http://stackoverflow.com/help/someone-answers –

+0

У меня есть еще один вопрос, связанный с весной. Вы можете мне помочь? – survivor

Смежные вопросы