我已经通过谷歌网页工具包运行的StockWatcher教程使用的Eclipse和谷歌插件,和我试图做给它一些基本的变化,使我能够更好地了解RPC框架.
我已经在StockServiceImpl服务器端类上修改了"getStocks"方法,以便它返回Stock对象的数组而不是String对象.应用程序编译完美,但Google Web Toolkit返回以下错误:
"没有源代码可用于com.google.gwt.sample.stockwatcher.server.Stock类型;您是否忘记继承所需的模块?"
Google Web Toolkit托管模式http://i44.tinypic.com/a47r83.jpg
似乎客户端类无法找到Stock对象的实现,即使已导入该类.作为参考,这是我的包层次结构的屏幕截图:
Eclipse包层次结构http://i43.tinypic.com/14tr5gk.jpg
我怀疑我在web.xml中遗漏了一些内容,但我不知道它是什么.谁能指出我正确的方向?
编辑:忘了提到Stock类是可持久的,所以它需要留在服务器端.
我想开发一个需要使用GWT和GAE进行数据持久化的Web应用程序.据我了解,我唯一(或至少是最方便的)数据持久性选项是GAE的数据存储区,使用JDO或JPA注释对象.我还希望能够使用GWT远程过程调用(RPC)来回发送我的对象客户端 - 服务器,因此我的对象必须能够"分离".但是,GWT RPC序列化无法处理分离的JDO/JPA对象,并且它似乎不会在不久的将来出现.
我的问题:对此最简单,最直接的解决方案是什么?能够与服务器端持久性共享相同的客户端/服务器对象将非常方便.
编辑
我应该澄清一点,我仍然希望将GWT RPC与GAE的数据存储区一起使用.我只是在寻找能够让所有这些技术协同工作的最佳解决方案.
我正在使用GWT的com.google.gwt.http.client.URL.encode()方法对查询参数进行编码,但是发现我无法在服务器上使用URL.decode()对其进行解码,因为实现不是'可用(我怀疑它使用javascript客户端实现).我明白了......
java.lang.UnsatisfiedLinkError:com.google.gwt.http.client.URL.decodeImpl(Ljava/lang/String;)Ljava/lang/String;
有人可以建议我应该使用服务器端来解码编码的字符串吗?