我正在编写一个使用 Apache Commons 配置来读取/写入 system.properties 文件的 Web 应用程序。文件本身放置在WEB-INF/classes/config
. 阅读没有问题,我可以在使用 Apache Tomcat 部署时对其进行写入。但是,当我使用 JBoss 部署应用程序时,我无法编写(使用cofig.setProperty(...)
. 我收到以下错误(仅限 JBoss):
2012-01-06 12:53:48,879 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/flint].[flint]] (http-0.0.0.0-8080- 1) servlet flint 的 Servlet.service() 抛出异常 java.net.UnknownServiceException:协议不支持输出 在 java.net.URLConnection.getOutputStream(URLConnection.java:792) 在 org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:449) 在 org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:377) 在 org.apache.commons.configuration.AbstractFileConfiguration.possiblySave(AbstractFileConfiguration.java:750) 在 org.apache.commons.configuration.AbstractFileConfiguration.clearProperty(AbstractFileConfiguration.java:789) 在 org.apache.commons.configuration.AbstractConfiguration.setProperty(AbstractConfiguration.java:481) 在 org.apache.commons.configuration.AbstractFileConfiguration.setProperty(AbstractFileConfiguration.java:782) 在 com.talecris.flint.server.config.SystemConfiguration.setResultInvalidColor(SystemConfiguration.java:571) 在 com.talecris.flint.controller.SystemAdminController.setSystemColors(SystemAdminController.java:496) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) 在 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
正如我所说,它在 Tomcat 中一切正常。system.properties
权限看起来不错 ( ) owner=Jboss
。我什至为每个人打开了 rw 的权限只是为了测试,但我仍然得到同样的错误。是否有一些 JBoss 设置阻止我的应用程序写入部署它的路径?
我可以将文件和子文件夹写入部署目录,但我无法将更改写入system.properties
(通过 apache commons config)。