如果未找到引用的Java类或列入黑名单,何时检测到此类?

leo*_*loy 5 java google-app-engine classloader

我想在Google appengine中使用一个小型图书馆; 其中一个类(比如说MyClass.writeToFile())使用的方法之一,java.io.FileOutputStream在列入黑名单的类中(好吧,不是白名单).

这是否意味着MyClass在类加载时会失败,或者只是在(如果)我尝试调用违规方法时会失败?在什么时候检查("FileOutputStream不允许")完成?当加载MyClass文件并检测到它"引用/依赖于"FileOutputStream时(我不知道这是否在MyClass 字节码中声明)?或者在 第一次FileOutputStream调用时尝试加载MyClass.writeToFile()

此外,假设该方法MyClass.writeToFile()对我的库不是必不可少的(但是MyClass),是否有一些解决方法,或者应该重构库(并构建,比如两个不同的罐子,一个完整的成熟和其他适合沙盒的)?

Kaj*_*Kaj 1

进行测试部署。如果我没记错的话部署应该会失败。某个类使用的类是字节码的一部分,google正在验证它。

编辑:我自相矛盾:) 该线程表明仅当加载 FileOutputStream 类时部署才会失败: GoogleAppEngine:可能禁用 FileUpload?

Edit2:这表明类加载器正在检查/停止加载禁止的类:沙箱