1

我想知道是否可以使用 GWT 的序列化程序。在使用 GWT 的 rpc-mechnism 时,GWT 在客户端对对象进行序列化,在服务端对对象进行反序列化。对于这种机制,您必须使用RemoteServiceServletGWT 的特殊 servlet ( )。但我想使用普通的 HttpServlets,因此我必须自己序列化和反序列化对象。

4

2 回答 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

参见gwt-byte-serializer

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 回答