2015-06-02 4 views
3

Когда я пытаюсь обработать файл в Camel и он не Стараюсь, чтобы переместить файл в каталоге ошибок, но получаю следующее сообщение об ошибке:Camel Delete File Exception

org.apache.camel.component. file.GenericFileOperationFailedException: невозможно удалить файл: ....

Я не знаю, блокирует ли Windows файл, но я закрыл любые потоки, которые могут вызвать это на моей стороне. Если это Windows, что я могу сделать, чтобы освободить эту блокировку?

Маршрут простой from()... process().. to() и есть некоторые заголовки, установленные после process() Это to(), где это не удается, и файл не перемещается в каталог ошибок, как и ожидалось.

Спасибо.

+2

Используйте [handle] (https://technet.microsoft.com/en-us/sysinternals/bb896655.aspx) или processexplorer, чтобы увидеть открытые дескрипторы. Тогда вы можете это сделать. – Jayan

+0

Я вижу, что файл отображается там, и он заблокирован моим процессом Java. Иногда он исчезает, и у меня нет проблемы, иногда это не так, поэтому его нельзя перемещать. –

ответ

2

Кажется, что был поток изгоев, который нуждался в изменении. Я нашел это, используя Process Explorer, так как он дважды идентифицировал один и тот же файл. Один замок был удален, а другой - нет, и из этого я нашел открытый поток, который не обрабатывался в блоке catch.

+1

блестящий, у меня была та же проблема - спасибо! – codebox

2

Может быть, это что-то делать с this:

Невозможно переместить/удалить файл после обработки на Windows,

Существует потенциальная проблема на платформе Windows, с Camel 1.5.x. То, что не может перемещать или удалять файл после обработки. Вы должны получить исключенное исключение .

Чтобы обойти эту проблему, чтобы преобразовать тело в строку после употребления с использованием convertBodyTo: например из («файл: // Входящие») .convertBodyTo (String.class) .то («файл: //») сходящие ;.

Должно быть исправление в Camel 1.6.0, чтобы исправить это, но мы бы хотели, чтобы , чтобы получить обратную связь по этой проблеме. Так что если вы на Windows, пожалуйста, дайте ему a go.

+0

Я бегу Camel 2.13.0, так что теперь это не должно быть проблемой, поскольку оно было исправлено в 1.6.0. –