我正在将我的应用程序从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)
请告知我为什么会收到此例外以及如何解决此问题。
答案 0 :(得分:2)
为什么我得到这个例外
GAE环境是沙箱化的原因有很多。这意味着您无法在本地计算机上执行许多通常的操作。
这还包括对文件系统的写访问权。
如何解决它
找到另一种方法来保存数据(例如数据库)。
您可以阅读有关沙盒限制的更多信息here。