繁体   English   中英

GWT:如何序列化对象

[英]GWT: How to serialize objects

我想知道是否可以使用GWT的序列化器。 当使用GWT的rpc-mechnism时,GWT序列化客户端上的对象并反序列化服务器上​​的对象。 对于此机制,您必须使用GWT的特殊servlet( RemoteServiceServlet )。 但我想使用普通的HttpServlets,因此我必须自己序列化和反序列化对象。

您需要查看的所有代码都在RemoteServiceServlet.java中 专注于processCall方法。

RPC.decodeRequest(payload,...)将为您提供一个RPCRequest对象,其中包括要调用的方法和反序列化的参数。

将响应焦点编码在RPC.invokeAndEncodeResponse()RPC.encodeResponseForSuccess()方法上。

[EDITED]

在客户端,值得查看RPC生成器生成的代理类, YourService_Proxy.javaYourService_Proxy.java文件。 编译项目后,生成的文件将保留在项目文件夹结构中的某个位置(您可以使用-gen指示此文件夹)。

有趣的代码在RemoteServiceProxy中 ,查看createStreamWritter方法,您可以看到如何序列化对象。 createStreamReader中,您可以看到如何从服务器反序列化消息。

请参阅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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM