Похоже GAE выбрал подмножество JDK 1.6 классов, в соответствии с:Логика (если таковые имеются) за Google App Engine за исключением стандартных JDK 1.6 API,
Google App Engine JDK white list
, который очень неудачно, как один получает класс связывают ошибки со всеми наиболее распространенными java-библиотеками, которые занимаются связыванием данных, их отражением, загрузкой классов и аннотациями. Хотя некоторые упущения могут быть для устаревших или устаревших вещей, есть и другие, которые этого не делают. Моя особая проблема связана с потоковыми анализаторами (javax.xml.stream. *), Которые были добавлены в JDK 1.6 после долгой задержки (API был завершен примерно в то же время, что и JDK 1.4). Опущение этого затрудняет выполнение масштабируемой высокопроизводительной обработки xml.
Проблема, как я понимаю, заключается в том, что классы не только отсутствуют, но и не могут быть добавлены из-за ограничений безопасности.
Итак: это открытый философский вопрос, который, вероятно, только разработчики GAE могли бы точно ответить, но ... почему некоторые API отбрасываются со стандартного JDK 1.6, казалось бы, произвольно?
UPDATE:
Краткое примечание: спасибо за ответы. Для чего это стоит, я действительно не вижу, как безопасность будет иметь какое-либо отношение к тому, чтобы не включать javax.xml.stream. Аспекты безопасности важны для многих других вещей (и, например, мне не нужны потоки, и я могу понять, почему они отсутствуют), так что это понятный шаблонный ответ; просто не применимо для этого.
Stax API - это всего лишь набор интерфейсов и аннотация для крика вслух. Но что более важно, он имеет точно такие же характеристики, как и интерфейсы SAX, DOM и JAXP, которые уже включены!
Но, похоже, этот вопрос был доведен до сведения Google дэвов:
discussion on whitelisting Stax API
так вот надеясь, что этот и подобные вопросы могут быть решены быстро.
Я несколько сомневаюсь, что это были критерии. Безопасность, скорее всего, была использована для определения того, как менеджер безопасности обрабатывает запросы к ресурсам (файлы, сети и т. Д.), Но относится к включениям классов ... – StaxMan
@StaxMan - Имейте в виду, что GAE позволяет много «рискованных» вещей. Доступны многие функции отражения, которые обычно должны быть отключены в такой среде. Это делает его также функцией того, какие атаки можно использовать с частными полями, методами и т. Д. – jsight
Да, согласен, и я думаю, что это здорово. Но это еще более странно, что менее рискованные вещи не были включены. Я надеюсь, что это действительно «клерикальная ошибка» и ничего не ошибка. – StaxMan