java - 哪些类可以在部署到 Google App Engine 的 GWT 应用程序中使用?

标签 java google-app-engine gwt client whitelist

我正在使用 GWT 编写一个应用程序,我想将其部署到 Google App Engine。我想使用 JRE 中的一些类,例如 java.io.BufferedReader; java.net.URL javax.crypto.Cipher java.util.zip.InflaterInputStream,列于 JRE 类白名单 - https://developers.google.com/appengine/docs/java/jrewhitelist

我正在使用 Eclipse,当我尝试在本地运行我的应用程序时,编译器会抛出类似 [ERROR] [gwtlist] 的错误 - 第 46 行:没有可用于 java.net.URL 类型的源代码;您是否忘记继承所需的模块?.

Google App Engine 一般问题中 - https://developers.google.com/appengine/kb/general#language据说: ...此外,基于 Java 的应用程序只能使用 JRE 类白名单中的 JRE 类。

我的问题是我的想法是对还是错?这个JRE类白名单可以在客户端使用,还是只对服务器端代码有用?在这种情况下,我不需要使用 Google App Engine,因为所有客户端代码都必须仅用纯 GWT 编写,并使用 JRE Emulation Reference 中的一些 java 类-https://developers.google.com/web-toolkit/doc/latest/RefJreEmulation?hl=es-419#Package_java_io 。在这种情况下,Google App Engine 的目标是什么?只是为了模拟服务器吗?

编辑:如果 Google App Engine 只能在服务器端模拟 JRE 类,您能否告诉我应用程序到底在哪里运行。我的意思是情况是:

应用部署在 Google App Engine 上。
客户端运行应用并登录。
服务器端代码在其他服务器上打开外部文件,解压缩并将结果发送到客户端。

我的问题是转账是如何进行的?是谷歌云内的所有内容,还是客户端必须下载,例如这个未压缩的文件?``

最佳答案

Appengine 代码仅是服务器端的。

如果是客户端代码,您可以在 GWT 中使用 AE 上未列入白名单的类。无论如何它都会被编译成 javascript。但是,您用于通过 GWT 从客户端进行 rpc 调用的任何服务器端代码都需要位于 AE 白名单中,因为它在那里运行。

错误“没有可用于 java.net.URL 类型的源代码”源自 GWT。基本上它是在寻找 src 以便编译成 javascript。 GWT 也有一个可以编译的白名单,除此之外,您还需要 src,除非您在 *.gwt.xml 文件中将其继承为 GWT 模块。请参阅https://developers.google.com/web-toolkit/doc/latest/RefJreEmulation

关于java - 哪些类可以在部署到 Google App Engine 的 GWT 应用程序中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099237/

相关文章:

java - 如何检查代码是在 GWT 的服务器端还是在客户端执行?

java - 如何在 gwt 中获取电子邮件的内容?

帮助! paintComponent 问题

java - Spring Bean 的真正功效如何

java - 缓存对象并在jsf中使用它们

python - Appengine模型过滤问题

python - 找不到函数名

java - GWT - 从 FormPanel 上传文件后返回对象吗?

java - GXT如何获取BeanModel的Map属性

java - 为什么 linkedhashmap 维护双向链表进行迭代