Печать исключения стека в Apache Camel - PullRequest
0 голосов
/ 17 февраля 2020

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

1 Ответ

1 голос
/ 17 февраля 2020

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

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

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

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

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

...