首页 文章

Google App Engine背后的逻辑(如果有),不包括标准的JDK 1.6 API

提问于
浏览
3

看起来GAE选择了JDK 1.6类的子集,如下所示:

Google App Engine JDK white list

这是非常不幸的,因为人们会在最常见的java库中获得类链接错误,这些java库处理数据绑定,反射,类加载和注释 . 虽然有些遗漏可能是针对已弃用或遗留的东西,但还有一些遗漏不是 . 我特别关注的是流式拉解析器(javax.xml.stream . *),它经过长时间的延迟(API与JDK 1.4大致同时完成)后才被添加到JDK 1.6中 . 省略这一点使得进行可扩展的高性能xml处理变得更加困难 .

我理解的问题是,不仅缺少类,而且由于安全性限制,甚至无法添加它们 .

所以:这是一个开放式的哲学问题,可能只是GAE开发人员可以肯定地回答但是......为什么有些API从标准的JDK 1.6中掉线,看似随意?

UPDATE

快速说明:感谢您的回答 . 对于它的 Value 我真的不知道安全性与不包括javax.xml.stream有什么关系 . 安全方面与许多其他事情相关(例如,我不需要线程,并且可以看出它们为什么会出局),所以这是可以理解的样板答案;只是不适用于这一个 .

Stax API只是一组接口和抽象的大声呼喊 . 但更重要的是,它与SAX,DOM和JAXP接口具有完全相同的分支 - 已经包含在内!

但看起来这个问题已经引起谷歌开发者的注意:

discussion on whitelisting Stax API

所以这里希望能够迅速解决这个问题和类似问题 .

3 回答

  • 7

    GAE在托管环境中运行,其中包含不受信任(可能是恶意)的客户端,这些客户端通常可以免费访问 .

    在这种类型的环境中,安全性是一个非常高的问题,具有文件系统访问权限的API受到非常严格的审查 . 我认为这就是为什么他们选择以他们允许的方式开始时相当保守 .

    但是,当安全问题得到解决(并且基于需求)时,如果有更多的课程进入白名单,这一点都不会让我感到惊讶 .

    但我甚至不希望获得线程工具,例如 .

  • 0

    这些东西是随意丢弃的,这是非常值得怀疑的 . GAE在一个极其安全敏感的环境中运行,并且对类库的内部审计发现Google不愿意承担一些风险的可能性很大 .

  • 2

    至于您的高性能流式XML解析器,您可以尝试查找适当的库(jar文件) . 除非它依赖于线程或文件访问(或黑名单API),否则它应该与JDK中的一样好用 .

    有很多(相当复杂)libraries that work on GAE .

相关问题