Как скачать ZIP-файл с http с верблюдом?

Я новичок с верблюдом. Я пытаюсь загрузить ZIP-файл, для которого у меня есть http-путь, и пытаюсь сохранить файл в локальной файловой системе. Мне удалось прочитать файл, но вместо того, чтобы прочитать его один раз и загрузить в локальную папку, мой код работает в бесконечном цикле и создает много копий файла, поэтому я получаю OFMemoryError. Я провел расследование, и использование компонента таймера должно решить проблему, но я не знаю, как использовать компонент таймера и прямые компоненты вместе... Я пробовал что-то, как показано ниже, но ничего не происходит

Вот мой код:

private static final String ROUTE_ID = "route.DownloadZipFileRoute";
private static final String URI = "direct:getZipFile";
private static final String ZIP_PATH = "/zipFiles";

@Override
public void configure() throws Exception {
    rest().get(ZIP_PATH).to(URI);

    from("timer:getZipFile?repeatCount=1").to("direct:getZipFile");
    from("direct:getZipFile")
            .routeId(ROUTE_ID)
            .setHeader(Exchange.HTTP_METHOD, constant("GET"))
            .to("http://example.zip?bridgeEndpoint=true")
            .to("file://D://outputFolder")
            .log("file is downloaded ..........");


}

0 ответов

Другие вопросы по тегам