我正在尝试更改cache.ccf文件的路径大约一个小时...
当我正在调用时,JCS.getInstance("myRegion");我收到此错误:
Exception in thread "main" java.lang.IllegalStateException: Failed to load properties for name [/cache.ccf]
Run Code Online (Sandbox Code Playgroud)
我试图将cache.ccf放入src文件夹.在这种情况下一切都OK.但我希望它在./config/目录中,而不是在目录中./src.我试图更改配置文件名:
JCS.setConfigFilename("../config/cache.ccf");
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我得到同样的错误:
Exception in thread "main" java.lang.IllegalStateException: Failed to load properties for name [../config/cache.ccf]
Run Code Online (Sandbox Code Playgroud)
它接缝JCS试图找到"../config/cache.ccf"src目录中命名的文件.
在这里,我发现了这句话:
类路径应该包括该文件所在的目录,或者文件应该放在类路径的根目录下,因为它是自动发现的.
但即使cache.ccf文件位于项目的根目录中,我的applilcation也不起作用.
如何更改cache.ccf文件的路径?
小智 9
我遇到了这个问题 - 因为我的项目(axis2,tomcat)中有多个类加载器,所以很难找出放置cache.ccf文件的位置.我最终没有使用.properties文件并直接配置它 - 这就是我做的...
CompositeCacheManager ccm = CompositeCacheManager.getUnconfiguredInstance();
Properties props = new Properties();
props.put("jcs.default","DC");
props.put("jcs.default.cacheattributes",
"org.apache.jcs.engine.CompositeCacheAttributes");
// lots more props.put - this is basically the contents of cache.ccf
ccm.configure(props);
JCS sessionCache = JCS.getInstance("bbSessionCache");
Run Code Online (Sandbox Code Playgroud)
您可能想检查您的类路径。似乎只有 src 位于类路径中,而不是 config 文件夹中。对我来说,我将 *.ccf 文件放置在类路径中的 config 目录中,我只需将 ccf 文件的路径指定为 /client_cache.ccf 即可让 JCS 获取它。
它还取决于您的部署环境。但是,如果您的类路径中列出了 /config ,它应该可以工作。