Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-glassfish-web服务-本地文件访问_Java_Web Services_Glassfish 3_File Permissions_Ubuntu 11.04 - Fatal编程技术网

Java-glassfish-web服务-本地文件访问

Java-glassfish-web服务-本地文件访问,java,web-services,glassfish-3,file-permissions,ubuntu-11.04,Java,Web Services,Glassfish 3,File Permissions,Ubuntu 11.04,我正在Ubuntu上使用glassfish服务器运行一个Web服务。问题是-需要访问其共享资源之外的目录。目前,它给出了一个错误,说“许可被拒绝”。我也在server.policy中设置了权限 grant codeBase "/home/glassfish/glassfish/test/-" { permission java.security.AllPermission; }; 但它似乎不起作用。 我尝试了,但它似乎只允许阅读。我还需要书面许可。所以我的问题是如何设置写入权限 谢谢。

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

grant codeBase "/home/glassfish/glassfish/test/-" {
    permission java.security.AllPermission;
};
但它似乎不起作用。 我尝试了
,但它似乎只允许阅读。我还需要书面许可。所以我的问题是如何设置写入权限


谢谢。

这不是Java安全问题,因此您不需要在这方面做任何调整

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

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

我将再次检查运行java进程GF的用户是否对您试图写入的目录具有rwx权限。确保用户可以写入目标文件夹。要测试这一点,您可以向用户发出su命令,并使用如下“touch”命令:touch/tmp/test和verify write permissions。通过运行“ls-l/tmp/test”类似地验证读取权限,以确保您可以读取它

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


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

您是否检查glassfish用户是否具有对目录的写入权限?是的glassfish用户具有读取/写入/执行所有权限。您如何访问这些文件?Java文件API或作为资源加载?以glassfish用户身份登录时,能否在给定目录中运行“touch foo”?您是否已测试权限设置是否正确?还可以尝试在关闭JVM安全性的情况下进行测试,看看这是否是问题的一部分。是
java.lang.SecurityException
java.io.FileNotFoundException
,还是
java.io.IOException
?“拒绝许可”太含糊了。