繁体   English   中英

Java-Glassfish-Web服务-本地文件访问

[英]Java - glassfish - web service - local file access

我在Ubuntu上使用glassfish服务器运行Web服务。 问题是-需要访问其共享资源之外的目录。 目前,它给出了一个错误,提示“权限被拒绝”。 我也对server.policy设置了权限。

grant codeBase "/home/glassfish/glassfish/test/-" {
    permission java.security.AllPermission;
};

但似乎不起作用。 我试过<property name="alternatedocroot_1" value="from=*.* dir=/home/glassfish/glassfish/test"/> ,但似乎只提供阅读权限。 我还需要写许可。 所以我的问题是如何设置写权限?

谢谢。

这不是JavaSecurity问题,因此您不需要在这方面进行任何调整。

FWIW我们的Web应用程序是在Windows的各种风格上部署到GF的,使用File API将其写入“应用程序”目录之外的目录。 Alternativedocroot适用于使用DefaultServlet提供静态内容的GF,而不是在Application部署目录之外进行写入。

在Windows上以Service身份运行时,必须注意“运行方式”用户具有写入目标目录的适当权限,在Unix上,您需要确保由运行的rc(init.d)脚本设置的用户asadmin.sh有权读取/写入目标目录。

我会仔细检查运行GF的Java进程的用户对您要写入的目录具有rwx权限。 确保用户可以写入目标文件夹。 要对此进行测试,您可以向用户求助,并使用'touch'命令,如下所示:触摸/ tmp / test并以此方式验证写入权限。 通过运行'ls -l / tmp / test'以类似方式验证读取权限,以确保您可以读取它。

看看什么'ps -ef | grep java'显示验证运行GF java进程的用户。 另外,在您的代码中,尝试指定测试文件的完整路径,例如。 文件测试=新文件(“ / tmp / test”);

您是从rc脚本运行GF,还是从shell提示符下使用asadmin.sh启动GF? 如果您正在运行rc脚本,请检查rc脚本是否确实以您期望的用户身份运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM