system.properties ファイルの読み取り/書き込みに Apache Commons 構成を使用する 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.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(ネイティブメソッド) 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 経由で) 書き込むことはできません。