Получить последние события из маршрута Apache Camel - PullRequest
0 голосов
/ 11 октября 2018

Когда начинается маршрут Camel, статус маршрута меняется.Однако бывает, что маршрут запускается правильно, но при запуске / во время выполнения появляются предупреждения / ошибки журнала (например, неверный пароль при запуске компонента FTP).

Эти события регистрируются в файле консоли / журнала.Я хочу получить эти события программно (за пределами Camel DSL).Например, getEvents (routeID, typeEvent, xNumberOfEvents) {}.

Эти события кэшируются кем-то Camel?Могу ли я получить события чем-то вроде ManagedRouteMBean?Или я должен написать свой собственный механизм кэширования, используя средство оповещения о событиях (аналогично примеру RiderEventNotifier) ​​или какой-то другой обработчик ошибок?

Например, в журнал записывается следующее сообщение:

2018-10-11 22:15:24.719  WARN 3820 --- [ XNIO-2 task-12] 
o.a.c.component.file.remote.FtpConsumer  : Error auto creating directory:  
due File operation failed: 530 This server does not allow plain FTP. You have 
to use FTP over TLS.
. Code: 530. This exception is ignored.

org.apache.camel.component.file.GenericFileOperationFailedException: File 
operation failed: 530 This server does not allow plain FTP. You have to use
FTP over TLS.
. Code: 530

Проблема с вышесказанным в том, что маршрут запускается нормально.Так что

ManagedRouteMBean route = context.getManagedRoute(id, ManagedRouteMBean.class);

RouteError lastError = route.getLastError();

не возвращает ошибок.

Также кажется, что это не ошибки в обмене, поэтому обработчик ошибок или уведомители о событиях не перехватывают эти сообщения.

Я хотел бы перехватывать (и кэшировать) такие сообщения с помощью routeid.

1 Ответ

0 голосов
/ 12 октября 2018

Существует способ обработки таких предупреждений / ошибок обычным обработчиком ошибок с помощью так называемого bridgeErrorHandler.Смотри: http://camel.apache.org/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.html

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