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

时间:2012-06-19 10:38:18

标签: 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 Class White List - https://developers.google.com/appengine/docs/java/jrewhitelist

我正在使用eclipse,当我尝试在本地运行我的应用程序时,编译器会抛出[ERROR] [gwtlist] - Line 46: No source code is available for type java.net.URL; did you forget to inherit a required module?之类的错误。

Google App Engine General Questions - https://developers.google.com/appengine/kb/general#language中,它说: ...Also, Java-based applications may only use the JRE classes in the JRE class white list.

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

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

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

我的问题是transfer是如何运作的?它是谷歌云中的一切,还是客户端必须下载,例如这个未压缩的文件?``

1 个答案:

答案 0 :(得分:1)

Appengine代码仅限服务器端。

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

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