Why am I having an InvalidClassException thrown during the serialization of my object which implements the Externalizable interface?

Govind Seshadri

Unlike objects which implement the Serializable interface, it is mandatory for objects implementing the Externalizable interface to also implement a public no-arg constructor. This constructor is the very first thing that is invoked by readExternal() when reconstructing the object from the bytestream. If a public no-arg constructor is absent, then an InvalidClassException is immediately thrown.