我正在使用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
是如何运作的?它是谷歌云中的一切,还是客户端必须下载,例如这个未压缩的文件?``
答案 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