【发布时间】:2017-10-07 07:22:51
【问题描述】:
我正在尝试为客户端 http 缓存配置我的 Resteasy 客户端。我想在客户端有一个持久缓存,它可以在我的客户端应用程序重新启动后继续存在。在谷歌的帮助下,我能够像这样设置我的 Resteasy 客户端:
File cacheDir = new File("C:\\Users\\MyUser\\Desktop\\cache");
CacheConfig config = CacheConfig.DEFAULT;
FileResourceFactory resourceFactory = new FileResourceFactory(cacheDir);
ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(config);
CloseableHttpClient client = CachingHttpClients.custom()
.setCacheConfig(config)
.setResourceFactory(resourceFactory)
.setHttpCacheStorage(cacheStorage)
.setDeleteCache(false)
.build();
ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(client);
ResteasyClient rclient = new ResteasyClientBuilder().httpEngine(engine).build();
我可以看到 Resteasy 客户端正在使用缓存机制。两次调用请求时,第二个请求比第一个请求快得多。但是,关闭客户端时缓存不会持久化。此外,在设置客户端时,指定目录中永远不会写入文件。有什么我想念的吗?我需要在重启后从文件系统中恢复缓存。
【问题讨论】:
标签: caching resteasy apache-httpclient-4.x http-caching