java - 如何用骆驼从http下载zip文件?
问题描述
我是骆驼的初学者。我正在尝试下载一个具有 http 路径的 zip 文件,并尝试将文件存储在本地文件系统中。我设法读取了该文件,但不是读取一次并将其下载到本地文件夹中,而是我的代码运行到无限循环并创建了该文件的许多副本,因此我得到了 OutOfMemoryError。我做了调查,使用定时器组件应该可以解决问题,但我不知道如何一起使用定时器组件和直接组件......我尝试了以下代码,但没有任何反应
这是我的代码:
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 ..........");
}
解决方案
推荐阅读
- generics - 如何定义扩展可空但本身不能为空的通用参数
- c# - UPS Address Validation Street Level API 每天的请求数量限制是多少?
- android - 在现有的 Android/iOS 应用程序中集成 Flutter 包
- angular - 将鼠标悬停在图像上以在其旁边显示更大的图像。角 7
- scala - 如何删除 RDD[(Int,Int)] 中重复的第二个值并保留 Spark 中的第一个值?
- google-analytics - Google Analytics - (gtag) 一个跟踪代码,多个域
- c# - 如何将 unicode 字形转换为文本
- reactjs - 我在什么时候更新反应状态而不是重新调用新数据?
- docker - 如何在 ubuntu.18.04 中使用letsencrypt运行docker私有注册表
- c++ - libcurl 和 DNS ttl 中的内部连接管理