我想知道是否可以使用GWT的序列化器。当使用GWT的rpc-mechnism时,GWT序列化客户端上的对象并反序列化服务器上的对象。对于此机制,您必须使用GWT的特殊servlet(RemoteServiceServlet
)。但我想使用普通的HttpServlets,因此我必须自己序列化和反序列化对象。
答案 0 :(得分:3)
您需要查看的所有代码都在RemoteServiceServlet.java中。专注于processCall方法。
RPC.decodeRequest(payload, ...)将为您提供一个RPCRequest对象,其中包括要调用的方法和反序列化的参数。
将响应焦点编码为RPC.invokeAndEncodeResponse()和RPC.encodeResponseForSuccess()方法。
[EDITED]
在客户端,值得查看RPC生成器生成的代理类,具体来说是YourService_Proxy.java
文件。编译项目后,生成的文件将保留在项目文件夹结构的某个位置(尽管如此,您可以使用-gen
指示此文件夹。)
有趣的代码位于RemoteServiceProxy,查看createStreamWritter方法,您可以看到如何序列化对象。在createStreamReader中,您可以看到如何从服务器反序列化邮件。
答案 1 :(得分:0)
SerializerInt ser = new Serializer();
ser.writeValue("test");
ser.writeValue(new int[]{5,1,6});
String buffer = ser.getBuffer();
SerializerInt des = new Serializer(buffer);
des.readString()
des.readIntegerArr()