【问题标题】:java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\tempFolder" "read") on GAEjava.security.AccessControlException:GAE 上的访问被拒绝(“java.io.FilePermission”“C:\tempFolder”“read”)
【发布时间】:2014-10-13 19:59:17
【问题描述】:

我正在将我的应用程序从 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)

请告知我为什么会收到此异常以及如何解决它。

【问题讨论】:

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


    【解决方案1】:

    为什么我会得到这个异常

    GAE 环境被沙盒化的原因有很多。这意味着您无法做很多通常可以在本地计算机上做的事情。

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

    如何解决

    寻找另一种方式来持久化您的数据(例如数据库)。

    您可以阅读更多关于沙盒限制的内容here

    【讨论】:

    • 你知道在GAE上用jsf上传文件的常用方法吗?
    • 当我尝试将文件上传到服务器时会发生此问题
    • @MahmoudS 不,没有处理 GAE 中的文件上传。
    猜你喜欢
    • 2012-05-14
    • 2017-08-19
    • 1970-01-01
    • 2014-11-04
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多