Я использую Spring JMS-интеграцию для использования mq-сообщения и файловой интеграции. Исходящий канал-адаптер перемещает сообщение об ошибке mq (если оно есть) в динамическую папку error / Filter / ddMMyyyy, используя "directory-expression" и regex.
mqMsgFeedChannel проверяет, является ли сообщение mq подлежащим фильтрации или нет?если да, то следует переместить сообщение в папку с текущей датой 04102018 (ddMMyyyy), где myproject.consumer.filter.output.dir=/our_nas_drive/our_project/data/our_env/error/filtered
.
<int:filter id="mqMessageFilter" expression="${myproject.consumer.filter.expression:true}" input-channel="mqMsgFeedChannel" output-channel="mqMsgProcessChannel" discard-channel="filterFileOutputChannel" throw-exception-on-rejection="false"/>
Я вижу, что глубина mq увеличивается на 1 при публикации сообщения и уменьшается до 0 после использования, но конфигурация не создает динамический каталог.Также проверил, создав каталог вручную даже сейчас, когда он не перемещал файл сообщения об ошибке в статическую папку 04102018.
Я проверил, не выдала ли он разрешение, с помощью атрибута «directory» для статической папки без регулярных выражений, и я могу подтвердить, что это непроблема разрешения.
<int-file:outbound-channel-adapter id="filterFileOutput" channel="filterFileOutputChannel" auto-create-directory="true" directory-expression="'${myproject.consumer.filter.output.dir}'+new java.text.SimpleDateFormat('ddMMyyyy').format(new java.util.Date())" delete-source-files="true"/>
Похоже, что это регулярное выражение хорошо работает в Windows, но не в Linux после развертывания на сервере.
Пожалуйста, совет, заранее спасибо
Том