3

以下のように、GAE は JDK 1.6 クラスのサブセットを選択したようです。

Google App Engine JDK ホワイト リスト

データ バインディング、リフレクション、クラスのロード、および注釈を処理する最も一般的な Java ライブラリを使用すると、いたるところでクラス リンケージ エラーが発生するため、これは非常に残念です。一部の省略は非推奨またはレガシーのものである可能性がありますが、そうでないものもあります。私の具体的な懸念は、長い遅延の後に JDK 1.6 に追加されたばかりのストリーミング プル パーサー (javax.xml.stream.*) です (API は JDK 1.4 とほぼ同時に完成しました)。これを省略すると、スケーラブルで高性能な xml 処理を行うことが難しくなります。

私が理解している問題は、クラスが欠落しているだけでなく、セキュリティ上の制約のためにクラスを追加することさえできないということです。

つまり、これはおそらく GAE 開発者だけが確実に答えることができる自由回答の哲学的質問ですが、なぜ一部の API が標準の JDK 1.6 から削除されているように見えますか?

更新

簡単なメモ: 回答ありがとうございます。価値があるのは、javax.xml.streamを含めないこととセキュリティがどのように関係があるのか​​ 本当にわかりません。セキュリティの側面は、他の非常に多くのことに関連しています(たとえば、スレッドは必要ありません。スレッドが存在しない理由を確認できます)ので、定型的な答えは理解できます。これには当てはまりません。

Stax API は、大声で叫ぶためのインターフェイスとアブストラクトのセットにすぎません。しかし、より重要なことは、SAX、DOM、および JAXP インターフェースを含めるのとまったく同じ影響を与えることです。これらは既に含まれています。

しかし、この問題は Google 開発者の注目を集めているようです:

Stax API のホワイトリスト登録に関する議論

したがって、これと同様の問題が迅速に解決されることを願っています。

4

3 に答える 3

7

GAE は、信頼されていない (悪意のある可能性のある) クライアントがホストされた環境で実行されます。これらのクライアントには、無料でアクセスできることがよくあります。

この種の環境では、セキュリティは非常に重要であり、ファイルシステムにアクセスできる API は非常に厳しく精査されます。それが、彼らが許可するものに関してかなり保守的に始めることを選んだ理由だと思います.

ただし、セキュリティの問題が解決されるにつれて (そして要求に基づいて)、より多くのクラスがホワイトリストに登録されたとしても、まったく驚くことではありません。

しかし、スレッドツールが利用可能になるとは思っていません。

于 2009-04-14T18:37:40.443 に答える
2

これらのものが恣意的に落とされたということは非常に疑わしいです。GAE は非常にセキュリティが重視される環境で実行されます。クラス ライブラリの内部監査で、Google が取りたがらないリスクが発見される可能性は十分にあります。

于 2009-04-14T18:37:19.180 に答える
0

高性能のストリーミング XML パーサーについては、適切なライブラリ (jar ファイル) を見つけることができます。スレッドまたはファイル アクセス (またはブラックリストに登録された API) に依存しない限り、JDK のものと同じように機能するはずです。

GAE で動作する(かなり複雑な) ライブラリが多数あります。

于 2009-04-15T05:19:46.110 に答える