Почему «directory-expression» не создает динамическую папку ddMMyyyy с использованием regex на сервере linux? - PullRequest
0 голосов
/ 04 октября 2018

Я использую 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 после развертывания на сервере.

Пожалуйста, совет, заранее спасибо

Том

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...