Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java gwt中的序列化问题_Java_Gwt - Fatal编程技术网

Java gwt中的序列化问题

Java gwt中的序列化问题,java,gwt,Java,Gwt,我读到: 但没有解决办法 我的包裹是: 包gwt.web 包gwt.web.client; 等等 我有套装型号 我的班级“models.Word”在哪里 正如您所看到的,这个类不位于int gwt.cleint,但它不应该在那里,它不是客户端类 这个类有默认构造函数,所以这不是问题 我有例外: 服务方法的公共抽象java.util.List gwt.web.client.WordService.getWords(java.lang.String)”抛出了 意外异常: com.google.gw

我读到:

但没有解决办法

我的包裹是:

包gwt.web 包gwt.web.client; 等等

我有套装型号

我的班级“models.Word”在哪里

正如您所看到的,这个类不位于int gwt.cleint,但它不应该在那里,它不是客户端类

这个类有默认构造函数,所以这不是问题

我有例外:

服务方法的公共抽象java.util.List gwt.web.client.WordService.getWords(java.lang.String)”抛出了 意外异常: com.google.gwt.user.client.rpc.SerializationException:类型 “models.Word”未包含在可以 无法通过此SerializationPolicy或其类对象序列化 被加载。出于安全目的,不会序列化此类型: 实例=Word[null]

在my App.gwt.xml中:

<!-- Specify the paths for translatable code                    -->
<source path='models'/>

这对我的班级很重要。因此,这也不应该是问题所在

问题是:如何处理?我需要使用我的模型类通过ajax通过服务传递它

我的类是可序列化的(实现该接口)

这个类是我代码的一部分。RPC中使用的此类:

@RemoteServiceRelativePath("wordServiceImpl")
public interface WordService extends RemoteService {
    public List<Word> getWords(String langCode);
}
@RemoteServiceRelativePath(“wordServiceImpl”)
公共接口WordService扩展了RemoteService{
公共列表getWords(字符串langCode);
}

需要记住的一件关键事情是GWT优化了所有类,如果不需要,它不会序列化所有类

如果您的类不是任何RPC调用的一部分(即RPC调用中使用的类没有将该类对象作为数据成员),GWT将不会序列化该类,因为它假定该类不需要


你的代码就是这样吗?在这种情况下,只需将该类的伪数据成员添加到RPC中使用的类中,需要记住的一件关键事情是GWT会进行优化,如果不需要,也不会序列化所有类

如果您的类不是任何RPC调用的一部分(即RPC调用中使用的类没有将该类对象作为数据成员),GWT将不会序列化该类,因为它假定该类不需要


你的代码就是这样吗?在这种情况下,只需将此类的假数据成员添加到RPC中使用的类中即可

这是我的代码。RPC中使用的此类:@RemoteServiceRelativePath(“wordServiceImpl”)公共接口WordService扩展了RemoteService{public List getWords(String langCode);}我认为您应该尝试在RPC调用中将此类的对象作为伪参数,并测试它是否序列化。我发现在客户端将我的实体作为伪对象(事实上是ast TDO对象)进行复制是非常愚蠢的。这将导致大量代码需要支持。若我更改实体中的某个字段,我应该在虚拟对象中更改它。这不好。人们如何处理这个问题,如何使用GWT和传输对象的一般方法很有趣。。然后为此创建特殊协议?我找到了如下所述的解决方案:-使用Gilead。但我还没有试过。但看起来不错,这是我的密码。RPC中使用的此类:@RemoteServiceRelativePath(“wordServiceImpl”)公共接口WordService扩展了RemoteService{public List getWords(String langCode);}我认为您应该尝试在RPC调用中将此类的对象作为伪参数,并测试它是否序列化。我发现在客户端将我的实体作为伪对象(事实上是ast TDO对象)进行复制是非常愚蠢的。这将导致大量代码需要支持。若我更改实体中的某个字段,我应该在虚拟对象中更改它。这不好。人们如何处理这个问题,如何使用GWT和传输对象的一般方法很有趣。。然后为此创建特殊协议?我找到了如下所述的解决方案:-使用Gilead。但我还没有试过。但这似乎还不错。