GWT RPC ServerSerializationStreamReader.deserialize 抛出 java.lang.ClassNotFoundException: https:

GWT RPC ServerSerializationStreamReader.deserialize throwing java.lang.ClassNotFoundException: https:

Google App Engine 云环境中的服务器代码 运行 抛出与 GWT-RPC 序列化/反序列化相关的异常。看起来根本原因是:

Caused by: java.lang.ClassNotFoundException: https:
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at com.google.apphosting.runtime.ApplicationClassLoader.findClass(ApplicationClassLoader.java:135)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:349)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:543)

我相信这是在我们升级到 Java 8 和 com.google.gwt 库的 2.8.1 版后开始发生的。

我们的代码曾经使用旧版本的 GWT。

客户端和服务器之间发送的数据类型 是可序列化的。

ClassNotFoundException: https: 到目前为止还是个谜。

事实证明问题是 gwt-servlet 2.4.0 和 GWT 2.8.1 之间的不兼容

改用 gwt-servlet 2.8.1 使问题消失

我看到其他人遇到了同样的问题,在此处报告: https://github.com/gwtproject/gwt/issues/9224

我也用我们的项目验证了它。