簡體   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