[英]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.java
是YourService_Proxy.java
文件。 編譯項目后,生成的文件將保留在項目文件夾結構中的某個位置(您可以使用-gen
指示此文件夾)。
有趣的代碼在RemoteServiceProxy中 ,查看createStreamWritter方法,您可以看到如何序列化對象。 在createStreamReader中,您可以看到如何從服務器反序列化消息。
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.