我想知道是否可以使用 GWT 的序列化程序。在使用 GWT 的 rpc-mechnism 时,GWT 在客户端对对象进行序列化,在服务端对对象进行反序列化。对于这种机制,您必须使用RemoteServiceServlet
GWT 的特殊 servlet ( )。但我想使用普通的 HttpServlets,因此我必须自己序列化和反序列化对象。
问问题
393 次
2 回答
3
您需要查看的所有代码都在RemoteServiceServlet.java中。专注于processCall方法。
RPC.decodeRequest (payload, ...)将为您提供一个 RPCRequest 对象,其中包括要调用的方法和反序列化的参数。
编码响应的重点是RPC.invokeAndEncodeResponse()和RPC.encodeResponseForSuccess()方法。
[编辑]
在客户端,值得看一下 RPC 生成器生成的代理类,具体来说是YourService_Proxy.java
文件。编译项目后,生成的文件会留在项目文件夹结构中的某个位置(您可以使用-gen
尽管指示此文件夹)。
有趣的代码在RemoteServiceProxy中,查看createStreamWritter方法,您可以看到如何序列化您的对象。在createStreamReader中,您可以看到如何反序列化来自服务器的消息。
于 2013-07-05T11:54:53.743 回答
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()
于 2014-05-25T21:14:02.193 回答