我们有一个 Java Web 服务应用程序,它使用 log4j 进行日志记录。当 log4j 尝试删除其滚动日志文件时抛出异常
Exception:java.security.AccessControlException: access denied
(java.io.FilePermission /var/opt/SUNWappserver/domains/domain1/
applications/j2ee-modules/ourwebservice/WEB-INF/logs/IMWrapper.log.10 delete)
当我们在目录中执行 ls
时,服务帐户确实有权读取和写入文件和目录。
从最初的谷歌搜索看来,我们可能必须更改 security.policy
文件以允许服务删除文件。有什么建议吗?
最佳答案
作为快速修复,您可以使用包含以下内容的策略文件启动应用程序:
grant {
permission java.security.AllPermission;
};
使用命令行选项:
-Djava.security.policy=文件:<您的策略文件>
参见this link有关如何配置策略文件以获得所需访问权限的详细信息。
编辑:很抱歉,但我不知道如何配置您的网络应用程序如何使用该策略文件,但至少该链接应该提示您获得所需的权限...
关于java - 尝试删除文件时出现 AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277100/