google-app-enginegwt-rpc

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


Server code running in Google App Engine cloud environment is throwing an exception related to GWT-RPC serialization / deserialization. It looks like the root cause is:

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)

I believe this started occurring after we upgraded to Java 8 and version 2.8.1 of com.google.gwt libraries.

Our code used to work with an older version of GWT.

The data types being sent between client and server are Serializable.

The ClassNotFoundException: https: is a mystery so far.


Solution

  • It turns out the issue was an incompatibility between gwt-servlet 2.4.0 and GWT 2.8.1

    Switch to use gwt-servlet 2.8.1 made the issue go away

    I saw someone else had the same issue, reported here: https://github.com/gwtproject/gwt/issues/9224

    and I verified it with our project also.