Печать исключений stacktrace в Apache Camel

Я разрабатываю программу с использованием Spring Boot и Apache Camel, которая считывает файл с файлового сервера с помощью FTP и записывает его на другой файловый сервер с помощью FTP. Я развертываю приложение Spring Boot на сервере JBoss EAP. когда я использовал библиотеку Apache commons-net для подключения к FTP-серверу, это не удалось, за исключением того, что не удалось подключиться к FTP-серверу. Я распечатал трассировку стека. Исключение приведено ниже:

    <<Some FTP logs before connecting>>
    500 - I won't open a connection to IP.
    java.lang.NullPointerException
    ...
    ...

Но когда я делаю то же самое, используя Apache Camel, он не выводит никаких сообщений об исключениях, трассировки стека или журналов FTP. Ниже моя программа:

public void configure() throws Exception {
        errorHandler(defaultErrorHandler()
                .maximumRedeliveries(3)
                .redeliveryDelay(1000)
                .retryAttemptedLogLevel(LoggingLevel.WARN));

        from("direct:transferFile")
            .log("Transferring file")
            .process(requestProcessor)
            .pollEnrich()
                .simple("${exchangeProperty.inputEndpoint}").timeout(0).aggregationStrategy(requestAggregator)
            .choice()
                .when(body().isNotNull())
                    .toD("${exchangeProperty.outputEndpoint}", true)
                    .log("File transferred")
                .otherwise()
                    .log("Empty body, exiting");
    }

Может ли кто-нибудь предложить мне, как мне распечатать трассировку стека и журналы FTP в Apache Camel?


person Anirban    schedule 17.02.2020    source источник


Ответы (1)


Почему бы не использовать предложение onException с вашими конкретными параметрами:

onException(NullPointerException.class)
    .maximumRedeliveries(3)
    .redeliveryDelay(1000)
    .retryAttemptedLogLevel(LoggingLevel.WARN);

Для ведения журнала используйте log () с дополнительными параметрами для отображения этих сообщений.

.log(LoggingLevel.WARN,"Transferring file ${body}")

Возможно, ваши журналы не отображаются из-за вашего уровня журнала.

person Hassam Abdelillah    schedule 17.02.2020
comment
Я внес изменения, это будет NullPointerException, а не IOException - person Hassam Abdelillah; 17.02.2020
comment
Извините, это NullPointerException, разве errorHandler () и onException () не будут делать то же самое? - person Anirban; 17.02.2020
comment
Проблема в том, что Camel не печатает журналы FTP, и мне нужно их распечатать. Есть ли способ распечатать эти журналы? Я изменил свой вопрос - person Anirban; 18.02.2020
comment
Это просто зарегистрирует сообщение Передача файлов на уровне WARN и ничего больше. Я хочу распечатать журналы FTP, когда он пытается подключиться к FTP-серверу, например, используя имя пользователя, пароль и т. Д. - person Anirban; 18.02.2020