GWT IncompatibleRemoteServiceException

直截了当但令人抓狂,我在RPC调用时收到此错误:

处理此调用时抛出了IncompatibleRemoteServiceException。 com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException:com.milkrun.core.dto.UserBasket的类型签名无效

以下是导致问题的类:

public class UserBasket implements Serializable{ private static final long serialVersionUID = -6761554796753637352L; public int userBasketID; public String description; public String userID; public List items; public String createUserId; public Timestamp createTs; public String lastUpdateUserId; public Timestamp lastUpdateTs; public Timestamp effStartTs; public Timestamp effStopTs; } 

和BasketItem类型:

 public class BasketItem implements Serializable { private static final long serialVersionUID = -17764683871112216L; public int basketItemID; public String upc; public String description; public String brandName; public BigDecimal price; public String createUserId; public Timestamp createTs; public String lastUpdateUserId; public Timestamp lastUpdateTs; public Timestamp effStartTs; public Timestamp effStopTs; } 

我不确定我哪里出错了,我宁愿不使用IsSerializable,因为这些DTO也在Android应用程序共享的项目中,IsSerializable是GWT堆栈的一部分。

我在开发模式中遇到了这个问题。 在我的情况下,问题是docker没有做“干净”。 我在workspace / .metadata / .plugins / org.eclipse.wst.server.core /(例如my-module.jar)中手动删除了我的gwt模块的.jar

之后,服务器端和客户端站点上的类再次相同。

只是一个想法。 如果您正在使用eclipse GWT插件,请针对lib文件夹中存在的jar检查eclipse-plugin配置(或捆绑)版本的GWT。

我在Eclipse Luna的DevMode中遇到了与GWT 2.6.0和Java 1.8_0_5相同的问题。 清理项目,重启Eclipse或Windows并没有帮助我,但我通过将App部署到外部Tomcat来 “解决”了这个问题 – 运行正常。 当我回到Eclipse时,该应用程序也在Jetty上的DevMode中正常运行。 奇怪的。 闻起来像GWT插件中的一个bug。

在Eclipse中,只需Project> Clean …为我工作。