java.security.AccessControlException:GAE上的访问被拒绝(“java.io.FilePermission”“C:\ tempFolder”“read”)

时间:2014-10-13 19:59:17

标签: java google-app-engine java-ee

我正在将我的应用程序从tomcat迁移到google app engine(1.9.1) 我在servlet 2.5上运行jsf 2.2 我正面临从文件系统中读取文件的问题,我有在文件系统上创建文件的代码,如下所示:

File file = new File("C:\\tempFolder");
if(file.isDirectory()){
  // do writing stuff here
}

在tomcat上我没有得到上述代码的任何例外,但在谷歌应用程序引擎上我得到以下异常:

Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\tempFolder" "read")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
    at java.security.AccessController.checkPermission(AccessController.java:559)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:429)

请告知我为什么会收到此例外以及如何解决此问题。

1 个答案:

答案 0 :(得分:2)

  

为什么我得到这个例外

GAE环境是沙箱化的原因有很多。这意味着您无法在本地计算机上执行许多通常的操作。

这还包括对文件系统的写访问权。

  

如何解决它

找到另一种方法来保存数据(例如数据库)。

您可以阅读有关沙盒限制的更多信息here

相关问题