Mule - IOException: путь: существует, но не является каталогом
Я использую файловый соединитель Mule для чтения файла из общего расположения. Общее местоположение и мое окружение развертывания основаны на Windows. Назначил общее расположение в моей среде развертывания как диск J:/ и использовал каталог J:/test.
Я могу просматривать этот каталог из Windows Explorer, а также из любого браузера. Но при развертывании выдает ошибку.
IOException: Path: J:/test exists but isn't a directory
Примечание. Разрешено использование каталога для любого пользователя. Не должно быть вопроса разрешения.
Если я использую любой локальный каталог, например C:/test, он работает нормально.
3 ответа
Вы запускаете свою среду исполнения Mule под каким-то ID. Этот идентификатор на этом конкретном поле не имеет доступа к этой папке. Предоставьте доступ к этой папке для этого идентификатора или используйте другой идентификатор, который имеет такой доступ.
Этот вариант использования является распространенным заблуждением при использовании Mule's File Connector.
Официальная документация для File Connector гласит:
Файловый соединитель поддерживает работу только с файлами в той же физической системе, что и запущенное приложение. Он не передает файлы удаленно через сетевые подключения. Единственное исключение - когда операционная система прозрачно отображает удаленные подключения в локальные каталоги.
По моему опыту, коннектор файлов не поддерживает работу с общими сетевыми системами Windows (SMB) и NFS.
Решение состоит в том, чтобы получить доступ к данным через сетевой протокол, например. SFTP или JMS. Мул содержит специальные разъемы для них обоих.
Скорее всего, ваша проблема связана с контекстом безопасности, который выполняет среда выполнения mule. попробуйте запустить среду выполнения под учетной записью пользователя Windows.