2009-12-15 41 views

回答

2

我已将GWT与自定义SerializationPolicyProvider集成在一起,在此我总是必须重命名<strong name>.gwt.rpc文件并在我的自定义SerializationPolicyProvider类中硬编码该名称。我通过查看GWT文档得到了解决办法。强名称是MD5哈希值与32的长度每一次RPC调用,以基于弹簧的控制器的方法:

String strongName = null; 
    if(payload!=null){ 
     StringTokenizer tokens = new StringTokenizer(payload,String.valueOf(AbstractSerializationStream.RPC_SEPARATOR_CHAR)); 
     while(tokens.hasMoreTokens()){ 
      String s = tokens.nextToken(); 
      if(s.length() == 32){ 
       strongName = s; 
       break; 
      } 
     } 
    } 

然后在您的SerializationPolicyProvider实现类用途:public String processCall(String payload),我用下面的代码获取强名称解析有效载荷以下内容: 以获得SerializationPolicy:

return SerializationPolicyLoader.loadFromStream(servletContext.getResourceAsStream(moduleBaseURL+"/"+strongName+"gwt.rpc"); 
0

一个解决方案似乎是使用编译器-gen选项。从编译器输出获取_Proxy.java并从中提取SERIALIZATION_POLICY。