Я хотел бы изменить файл свойств портлета во время выполнения. Портлет развернут в Tomcat 7.0.23, а файл свойств находится в "/ WEB-INF / classes / content", откуда я могу получить к нему доступ с помощью кода, показанного ниже. Фактически код выполняется без каких-либо исключений, но вновь добавленное свойство не сохраняется в файле свойств.
String fileName = "MyProps.properties";
String relativePath = "/WEB-INF/classes/content/";
String fullPath = "c:/tomcat-7.0.23/webapps/my-portlet/WEB-INF/classes/content/";
try {
String path = relativePath + fileName;
InputStream in = getPortletContext().getResourceAsStream(path);
Properties props = new Properties();
props.load(in);
props.setProperty("test", "test");
File file = new File(fullPath + fileName));
FileOutputStream out = new FileOutputStream(file);
props.store(out, "");
} catch(Exception ex) { // error handling here}
После добавления нового свойства я могу подтвердить с помощью
props.list(System.out);
что это действительно было добавлено. Файл context.xml содержит следующие записи:
antiJARLocking="true"
antiResourceLocking="true"
Это правильный способ добавления / изменения свойств в работающем экземпляре Tomcat или я должен использовать другой подход? Если последнее, как это может быть достигнуто лучше всего?
Большое спасибо за ваши ответы!