Я пишу веб-приложение, которое использует конфигурацию Apache Commons для чтения / записи файла system.properties. Сам файл помещается в WEB-INF/classes/config
. Чтение не проблема, и я могу писать в него при развертывании с помощью Apache Tomcat. Однако, когда я развертываю приложение с помощью JBoss, я не могу писать (используя cofig.setProperty(...)
. Я получаю следующую ошибку (только JBoss):
2012-01-06 12:53:48,879 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/flint].[flint]] (http-0.0.0.0-8080-1) Servlet.service() for servlet flint threw exception java.net.UnknownServiceException: protocol doesn't support output at java.net.URLConnection.getOutputStream(URLConnection.java:792) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:449) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:377) at org.apache.commons.configuration.AbstractFileConfiguration.possiblySave(AbstractFileConfiguration.java:750) at org.apache.commons.configuration.AbstractFileConfiguration.clearProperty(AbstractFileConfiguration.java:789) at org.apache.commons.configuration.AbstractConfiguration.setProperty(AbstractConfiguration.java:481) at org.apache.commons.configuration.AbstractFileConfiguration.setProperty(AbstractFileConfiguration.java:782) at com.talecris.flint.server.config.SystemConfiguration.setResultInvalidColor(SystemConfiguration.java:571) at com.talecris.flint.controller.SystemAdminController.setSystemColors(SystemAdminController.java:496) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
Как я уже сказал, в Tomcat все работает нормально. system.properties
разрешения выглядят нормально (owner=Jboss
). Я даже открыл разрешения до rw для всех, просто чтобы проверить, но все равно получаю ту же ошибку. Есть ли какой-то параметр JBoss, который мешает моему приложению записывать на путь, по которому оно развернуто?
Я могу записывать файлы и подпапки в каталог развертывания, но не могу записывать изменения в system.properties
(через конфигурацию apache commons).