在GWT 1.7中,我有一个用于在服务器端构造对象的类,然后在客户端(浏览器)端使用.
在客户端,我想缓存一个服务(在这种情况下是NumberFormat).这将在仅客户端方法中懒惰地初始化,并存储为字段对象.
问题是Java(1.6)构建工具将此字段解释为需要在服务器端进行序列化(即使它从未在服务器上访问过).
我可以将对象包装在某些hander客户端,但我宁愿指定一个注释来指示该字段永远不需要为RPC传输进行序列化.
public class myCrossDomainObject {
private int someSerializedField;
private string anotherSerializedField;
@SomeAnnotationIKnowNotWhat(..)
private NumberFormat numberFormatterDontSerializeMe;
// rest of class ......
}
Run Code Online (Sandbox Code Playgroud) 我已经实现了RPCService,RPCServiceAsync和RPCServieImpl.单击按钮时,将调用服务器端的服务,它将从DB获取数据并创建文件.创建文件后,我需要在客户端打开该文件,并需要提示一个带有打开/保存选项的对话框.我该如何实现这个打开文件部分.请提示一种方法来实现t ..回复请...提前感谢....
@Hambend:我还有一个澄清!如何在另一个servlet中调用这个doGet方法,即在我的onmodule加载类中我有很多小部件在单独的布局中,一个这样的小部件是BUTTON?单击此按钮服务RPCServiceImpl被调用,所有操作都完成,文件在serperate函数中创建(public int GenerateFile(String name)()).如何使该函数调用doGet方法?既然doGet需要请求,响应参数会随之传递?请给我一个调用该方法的方法.提前致谢
我为rpc服务创建了一个服务,async,impl.但是,当我去gwt编译时(我正在使用带有gwt 2.4插件的Eclispe Indigo)我遇到了这些错误:
使用-strict或-logLevel进行编译设置为TRACE或DEBUG以查看所有错误.
扫描其他依赖项:file:/ C:/.../ client/activity/CalculatorActivity.java
计算'... Calculator.client.CalculatorService'重新绑定com ... CalculatorService的所有可能的重新绑定结果
检查'file:/ ... Calcuator/src/... Calculator/client/CalculatorService.java'中的规则[ERROR]错误
[错误]第17行:没有源代码可用于类型java.io.InputStream; 你忘了继承一个必需的模块吗?
[错误]无法找到类型'... Calculator.client.CalculatorService'
[错误]提示:以前的编译器错误可能导致此类型不可用
[错误]提示:检查模块中的继承链; 它可能不是继承所需的模块,或者模块可能无法正确添加其源路径条目
[ERROR]'file:/ ... Calculator/client/activity/CalculatorActivity.java'中的错误
[错误]第59行:无法通过延迟绑定解析'... CalculatorService'
[错误]由于先前的错误而无法继续
我不确定是什么原因造成的?我没有在Eclipse下得到任何编译错误,但显然没有为RPC服务设置正确的东西.
关于问题是什么的任何想法?
我的代码是用于向多个用户发送电子邮件.用户将点击发送按钮,并将调用rpc.现在,如果用户点击取消按钮.应该取消正在进行的rpc..有人可以帮忙吗?
我搜索了很多,他们介绍了Request Builder的概念.但我没有得到任何完美的想法.