我想使用java代码清除jboss缓存,为了实现这个目标,我实现了以下代码:
public void clearCache(String s){
String[] st=CacheManager.getInstance().getCacheNames();
Cache cache =CacheManager.getInstance().getCache(s);
cache.flush();
}
这段代码是否正确?如何确保JBoss缓存成功清除?谢谢
答案 0 :(得分:1)
您的代码中有三个错误。首先,您不需要查询getCacheNames()
;你已经传递了想要清除的缓存的名称,而你只是将结果丢弃在st
中。接下来,没有CacheManager#getCache(String)
这样的方法;它是getCache(String, boolean) throws Exception
,您需要传递s, false
并处理(过于宽泛的Exception
)。最后,你永远不会检查缓存是否确实存在;如果有人传入代表不存在缓存的名称,cache
将为null
,当您尝试flush()
时,您将获得NPE。