gpt4 book ai didi

java - 从 GWT 2.7 更新到 2.8.1 后出现 IncompatibleRemoteServiceException

转载 作者:行者123 更新时间:2023-11-29 04:23:15 26 4
gpt4 key购买 nike

将我的 GWT 2.7 应用程序更新到 GWT 2.8.1 后,我收到以下异常: com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: The response could not be deserialized

Caused by: com.google.gwt.user.client.rpc.SerializationException: /my/path/to/a/file.pdf .此路径存储在MyClass 的路径变量中:

import java.util.ArrayList;
import java.util.List;
import com.google.gwt.user.client.rpc.IsSerializable;

public class MyClass implements IsSerializable {

private Integer id;
private String name;
private String path;
private List<String> assetClasses = new ArrayList<>();
private List<String> keywords = new ArrayList<>();
private List<Integer> regions = new ArrayList<>();

public ReportLink() {
// Empty default constructor for GWT serialization.
}

...getters + setters following
}

如你所见,我正在执行 IsSerializable .此外,我有一个空的构造函数(这可能是导致此异常的最常见原因 ;-))并且该类位于共享文件夹中(在 *.gwt.xml 中引用)。

我从数据库查询中设置这样的数据:

myClass.setName(resultSet.getString("name"));
myClass.setPath(resultSet.getString("path"));
String keywords = resultSet.getString("keywords");
myClass.setKeywords(Arrays.asList(keywords.split("\\s*,\\s*")))
...

并添加不同的MyClassList<MyClass> .然后将其中两个列表添加到 map 并返回:

Map<String, List<MyClass>> map = new HashMap<>();
map.put("A", a);
map.put("B", b);
return map;

这只发生在编译后的服务器上。在 SuperDevMode 中一切正常。有什么想法吗?

我已经删除了类和部署文件夹,做了一个项目+ gwt-unit-cache 清理并重新编译了项目多次但仍然出现异常。

我还想知道为什么异常会显式记录字符串 path哪个应该可以毫无问题地序列化?!

最佳答案

原因是 gwt-servlet.jar 的旧版本在新 gwt-servlet 旁边的 WEB-INF/lib 文件夹中有另一个名称。 jar 版本 2.8.1。因此,乍一看并不明显。尴尬,但也许它提醒其他人仔细检查...

关于java - 从 GWT 2.7 更新到 2.8.1 后出现 IncompatibleRemoteServiceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com