Я делаю кеширование для объектов в начале моего приложения, этот объект является результатом синтаксического анализа XML-файла и сохраняет его содержимое в ArrayList
.
Теперь я обновляю данные в XML-файле,но объект в кэше все еще имеет старые значения, вот код, который я называю кэшированным объектом:
ObjectsCaching objCache = ObjectsCaching.getObjectsCaching();
Cache cache = objCache.getMemoryCache();
List<FormPorperties> formList = null; //to obtain form properties from xml file whether form cashed object or through parsing xml file
if (cache.get("formValidators") == null) {//if object is not cashed in memory
try {
InputStream fis = this.getClass().getResourceAsStream("FormFieldsNames.xml");
// list of FormPropereties, each formProperties object contain form name
// and HashMap of field with its validation
formList = XMLFormParsing.getFormsProperties(fis); //singelton class
cache.put("formProperties", formList); //cash object
} catch (IOException ex) {
Logger.getLogger(ContextListener.class.getName()).log(Level.SEVERE, "Error in parsing FormFieldsNames file ", ex);
} catch (XMLStreamException ex) {
Logger.getLogger(ContextListener.class.getName()).log(Level.SEVERE, "Error in parsing FormFieldsNames file ", ex);
}
} else {
formList = (List<FormPorperties>) cache.get("formProperties");
}
Я попытался удалить код проверки
if (cache.get("formValidators") == null)
, чтобы заставить приложениечтобы проанализировать файл, но он все еще читает старое содержимое
Содержимое файла XML представляет собой имена форм и поля каждой формы, я использую этот способ для проверки поля формы на стороне сервера.
вот пример
<form name="groupAdditoinEditionForm">
<fieldName > groupEname </fieldName>
<fieldName > groupAname </fieldName>
</form>
<form name="userAdditionFrom">
<fieldName > userName </fieldName>
<fieldName > country </fieldName>
<fieldName > faxNo </fieldName>
<fieldName > email </fieldName>
<fieldName > confirmEmail </fieldName>
<fieldName > accessControl </fieldName>
<fieldName > lang </fieldName>
<fieldName > group </fieldName>
</form>
Я добавляю первый тег в XML-файл, но парсер все еще читает старые значения !!