java – Google App Engine背后的逻辑(如果有),不包括标准的JDK 1.6 API
作者:互联网
看起来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中掉线,看似随意?
更新:
快速说明:感谢您的回答.对于它的价值我真的不知道安全性与不包括javax.xml.stream有什么关系.
安全方面与许多其他事情相关(例如,我不需要线程,并且可以看出它们为什么会出局),所以这是可以理解的样板答案;只是不适用于这个.
Stax API只是一组接口和摘要,用于大声喊叫.但更重要的是,它与SAX,DOM和JAXP接口具有完全相同的分支 – 已经包括在内!
但看起来这个问题已引起谷歌开发者的关注:
discussion on whitelisting Stax API
所以这里希望能够迅速解决这个问题和类似问题.
解决方法:
GAE在托管环境中运行,其中包含不受信任(可能是恶意)的客户端,这些客户端通常可以免费访问.
在这种类型的环境中,安全性是一个非常高的问题,具有文件系统访问权限的API受到非常严格的审查.我认为这就是为什么他们选择以他们允许的方式开始时相当保守.
但是,当安全问题得到解决(并且基于需求)时,如果有更多的课程进入白名单,这一点都不会让我感到惊讶.
但我甚至不希望获得线程工具,例如.
标签:stax,jdk1-6,java,google-app-engine 来源: https://codeday.me/bug/20190724/1520295.html